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

Eli*_*ker 18 macos xcode gcc mpfr dylib

当我在项目上运行"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
Run Code Online (Sandbox Code Playgroud)

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

Utp*_*mar 46

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

brew upgrade gawk
Run Code Online (Sandbox Code Playgroud)


neo*_*izo 5

我这样解决了。

ln -s /usr/local/opt/mpfr/lib/libmpfr.6.dylib /usr/local/opt/mpfr/lib/libmpfr.4.dylib
Run Code Online (Sandbox Code Playgroud)

  • 由于@ vinc17提及的原因,这是完全不正确的。在OSX上,“ libmpfr.4.dylib”对应于“ mpfr-3.x”发行版,而“ libmpfr.6.dylib”对应于“ mpfr-4.x”发行版。必须将MAJOR版本中的更改视为二进制不兼容。如果“可行”,那么您就是幸运的。 (2认同)

vin*_*c17 2

错误的原因是您已从 MPFR 3.1.x 升级到 MPFR 4.0.x,这与 MPFR 3.1.x ABI 不兼容(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,如上所述。