dyld:未加载库:/usr/local/lib/libmpfr.4.dylib

时间:2018-03-23 20:23:32

标签: xcode macos gcc dylib mpfr

当我在项目上运行“make”时,我收到此错误:

dyld: Library not loaded: /usr/local/lib/libmpfr.4.dylib 
Referenced from: /Users/Petrov/Downloads/mips/bin/../libexec/gcc/mipsel-elf/4.8.1/cc1
  Reason: image not found

libmpfr.4.dylib中没有/usr/local/lib个文件,但有libmpfr.6.dylib。我安装了mpfr 4.0.1。我已经尝试重新安装Xcode和mpfr。

5 个答案:

答案 0 :(得分:41)

我在Mac上遇到过类似的问题。我通过使用brew

升级“gawk”来修复它
brew upgrade gawk

答案 1 :(得分:5)

我这样解决了。

ln -s /usr/local/opt/mpfr/lib/libmpfr.6.dylib /usr/local/opt/mpfr/lib/libmpfr.4.dylib

答案 2 :(得分:2)

@ Vinc17在对@neosarchizo提出的解决方案的评论中是正确的,如果引用另一个版本 HOWEVER ,在我的情况下,运行以下命令,符号链接可能会出现问题:

locate libmpfr.4.dylib

表明我确实在其他目录中具有正确的库:

/opt/local/lib/libmpfr.4.dylib

所以对我来说,我觉得使用符号链接方法绝对安全,即:

sudo ln -s /opt/local/lib/libmpfr.4.dylib /usr/local/lib/libmpfr.4.dylib

可能是黑客,但问题已解决。

答案 3 :(得分:1)

错误的原因是您已从MPFR 3.1.x升级到MPFR 4.0.x,这与MPFR 3.1.x不兼容(MPFR 4.0.x库不能与针对MPFR编译的程序一起使用) 3.1.X)。因此,从libmpfr.4.dylib(用于MPFR 3.0.x和MPFR 3.1.x)更改为libmpfr.6.dylib(至少用于MPFR 4.0.x)。

为避免错误,您应该做的是安装MPFR 4.0.x而不从MPFR 3.1.x卸载libmpfr.4.dylib:所有新编译的软件都将使用MPFR 4.0.x和libmpfr。 6.dylib,但依赖于MPFR的旧二进制文件仍然可以使用libmpfr.4.dylib运行(一个可能的例外是当MPFR有两个不同的依赖关系时,通过库,其中libmpfr.4.dylib和libmpfr可能需要.6.dylib,在这种情况下,这可能不起作用。)

现在,您应该重新编译Xcode。如果您已经编译了Xcode(来自二进制包),请确保您获得针对MPFR 4.0.x编译的一个,或者包含libmpfr.4.dylib文件的编译器。如果无法做到这一点,则应重新安装MPFR 3.1.x.然后你应该能够安装MPFR 4.0.x而无需删除libmpfr.4.dylib,如上所述。

答案 4 :(得分:0)

使用系统工具链进行编译:

export PATH=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:$PATH.