【问题标题】:Matlab - dyld: Library not loaded: /usr/local/opt/mpfr2/lib/libmpfr.1.dylibMatlab - dyld:库未加载:/usr/local/opt/mpfr2/lib/libmpfr.1.dylib
【发布时间】:2013-10-13 06:31:44
【问题描述】:

我正在尝试使用 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:内部编译器错误:Trace/BPT 陷阱:5(程序 cc1plus) /Applications/MATLAB_R2012b.app/bin/mex:第 1326 行:15075 中止陷阱: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

【问题讨论】:

标签: matlab gcc dyld


【解决方案1】:

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

brew reinstall gcc48 mpfr2

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

【讨论】:

    【解决方案2】:

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

    setenv('DYLD_LIBRARY_PATH','')
    

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

    Matlab 的 setenv 文档:

    使用 setenv 分配给变量的值被 any
    使用 MATLAB SYSTEM、UNIX、DOS 或“!”生成的进程
    职能。您可以使用
    检索任何使用 setenv 设置的值 GETENV(姓名)。

    【讨论】:

      猜你喜欢
      • 2018-09-02
      • 2021-07-14
      • 2020-04-19
      • 2020-03-19
      • 2018-11-11
      • 1970-01-01
      • 2015-05-15
      • 2021-11-20
      相关资源
      最近更新 更多