"未找到符号"错误,(可能)由于最近升级到R2017b?

时间:2017-11-13 12:40:25

标签: macos matlab

当我尝试从命令行使用imerode()时出现错误,例如

test=magic([100 100])>200;
imclose(test,strel('disk',10,0));

我收到此错误:

  

使用images.internal.morphmex时出错无效的MEX文件   ' /Applications/MATLAB_R2017b.app/toolbox/images/images/+images/+internal/morphmex.mexmaci64' ;:   dlopen的(/Applications/MATLAB_R2017b.app/toolbox/images/images/+images/+internal/morphmex.mexmaci64,   6):找不到符号:_OSAtomicDecrement32Barrier参考自:   /Applications/MATLAB_R2017b.app/bin/maci64/./libcudart.8.0.dylib
  预计在:/usr/lib/libSystem.B.dylib中   /Applications/MATLAB_R2017b.app/bin/maci64 /./ libcudart.8.0.dylib。

     

images.internal.morphop中的错误(第103行)           B = images.internal.morphmex(mex_method,B,nhood,height,unpacked_M);

     

imdilate错误(第135行)B =   images.internal.morphop(A,SE,'扩张',mfilename,varargin {:});

     

imclose出错(第82行)       outputImage = imerode(imdilate(inputImage,se,packopt,M),se,packopt,M);

我在OS X 10.9.5上使用MATLAB R2017b。 我已检查过给定路径中的morphmex.mexmaci64(上图)。 不确定/./指的是哪里,但libcudart.8.0.dylib在maci64文件夹中。 不确定/ usr / lib / ...在哪里。

修改

我已经卸载了R2017b并安装了R2017a(为什么不安装,以防万一...)当我尝试运行相同的代码时,我现在得到了这个错误(这看起来更糟......)

        

在2017年11月13日星期一13:44:29检测到分段违规

     

配置:崩溃解码:已禁用 - 无沙箱或构建   区域路径崩溃模式:继续(默认)当前   图形驱动程序:未知硬件当前视觉:Quartz
  默认编码:ISO-8859-1已部署:false主机   姓名:eduroam-206-52.nomadic.bris.ac.uk MATLAB   架构:maci64 MATLAB授权ID:1803495 MATLAB Root
  :/Applications/MATLAB_R2017a.app MATLAB版本:9.2.0.556344   (R2017a)OpenGL:硬件操作系统:   达尔文13.4.0达尔文内核版本13.4.0:1月11日星期一18:17:34太平洋标准时间   2016年root:xnu-2422.115.15~1 / RELEASE_X86_64 x86_64处理器ID
  :x86 Family 6 Model 69 Stepping 1,GenuineIntel虚拟机
  :Java 1.7.0_75-b13与Oracle Corporation Java HotSpot(TM)64位   服务器VM混合模式窗口系统:Quartz

     

故障数:2

     

异常终止:跟踪陷阱

可以上传其余信息的错误文件(此处粘贴时间太长)。

提前致谢。

2 个答案:

答案 0 :(得分:1)

看起来像安装问题,或者可能是由于更新。

尝试在控制台中运行以下命令:

restoredefaultpath();
rehash toolboxcache;

如果一切正常,请运行:

savepath();

答案 1 :(得分:0)

原来R2017a,b与OS Mavericks不兼容。 回到R2016a。