Matlab - dyld:未加载库:/usr/local/opt/mpfr2/lib/libmpfr.1.dylib

时间:2013-10-06 18:02:17

标签: matlab gcc dyld

我正在尝试使用mex编译matlab程序。我面临以下错误,并想知道您是否有任何建议。我已在/usr/local/opt/mpfr安装了最新版本的mpfr,但它仍在挑选/usr/local/opt/mpfr2

错误如下:

  

dyld:未加载库:/usr/local/opt/mpfr2/lib/libmpfr.1.dylib     参考自:/usr/local/Cellar/gcc48/4.8.1/gcc/libexec/gcc/x86_64-apple-darwin12.5.0/4.8.1/cc1plus     原因:库版本不兼容:cc1plus需要4.0.0或更高版本,但libmpfr.1.dylib提供版本3.0.0   g ++ - 4.8:内部编译器错误:跟踪/ BPT陷阱:5(程序cc1plus)   /Applications/MATLAB_R2012b.app/bin/mex:line 1326:15075 Abort trap:6 /usr/local/bin/g++-4.8 -c -I / Applications / MATLAB_R2012b.app / extern / include -I / Applications / MATLAB_R2012b。 app / simulink / include -DMATLAB_MEX_FILE -fno-common -fexceptions -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/ -mmacosx-version- min = 10.7 -DMX_COMPAT_32 -O2 -DNDEBUG“face-detection / src / resizef.cc”-o face-detection / private / resizef.o

2 个答案:

答案 0 :(得分:2)

在编译之前尝试运行此命令:

setenv('DYLD_LIBRARY_PATH','')

我试图编译其他东西(不是Matlab程序)并收到同样的错误。同样的命令在bash中工作,所以我检查了环境变量,发现Matlab的DYLD_LIBRARY_PATH与bash的DYLD_LIBRARY_PATH不同。没有定义bash DYLD_LIBRARY_PATH,所以我在Matlab中将它设置为空,它修复了路径错误。

Matlab的setenv文档:

  

任何使用setenv分配给变量的值都会被选中   使用MATLAB SYSTEM,UNIX,DOS或'!'生成的过程   功能。您可以使用
来检索使用setenv设置的任何值   GETENV(NAME)。

答案 1 :(得分:1)

尝试重新安装gcc及其mpfr2包,例如:

brew reinstall gcc48 mpfr2

另外,请确保您没有覆盖启动shell脚本中的任何DYLD_LIBRARY_PATHDYLD_FALLBACK_LIBRARY_PATHDYLD_FRAMEWORK_PATH变量(例如~/.bash_profile)。