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

问题描述 投票:16回答:5

当我在项目上运行“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。

xcode macos gcc dylib mpfr
5个回答
42
投票

我在Mac上遇到了类似的问题。我通过使用brew升级“gawk”来修复它

brew upgrade gawk

5
投票

我这样解决了。

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

2
投票

错误的原因是您已从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,如上所述。


2
投票

@ Vinc17在他对@ neosarchizo建议的解决方案的评论中是正确的,如果引用不同的版本,符号链接可能会有问题,但在我的情况下,运行以下命令:

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

可能是一个黑客,但问题解决了。


0
投票

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

export PATH=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:$PATH.
© www.soinside.com 2019 - 2024. All rights reserved.