当我试图在Mac OS X中运行一个可执行文件时,我得到以下错误

dyld: Library not loaded: libboost_atomic.dylib
  Referenced from: /Users/"Directory my executable is in"
  Reason: image not found
Trace/BPT trap:5

我已经安装了boost库,它们位于/opt/local/lib中。我认为这个问题与可执行文件只在它所在的目录中查找有关,因为当我粘贴'libboost_atomic。Dylib '在那里,它不再介意了。不幸的是,它会抱怨找不到下一个增强库。

有没有简单的方法来解决这个问题?


当前回答

对于某些人来说,这就像为动态库设置系统路径一样简单。在OS X上,这就像设置DYLD_LIBRARY_PATH环境变量一样简单。看到的:

是否可以在Mac OS X上使用DYLD_LIBRARY_PATH ?它的动态库搜索算法是什么?

其他回答

您可以对可执行文件使用otool命令和-L选项,这将显示可执行文件期望这些库的位置。

如果需要更改这些库的路径,请使用install_name_tool命令,该命令允许您设置库的路径。

如果使用virtualenv,只需删除环境的文件夹并使用此命令重新创建它 Virtualenv——python=/usr/local/bin/python3 the_name_of_my_env . txt

对于使用不同的库或包遇到相同问题的人来说,@user3835452是正确的。我在尝试运行composer时发现了这条消息:

dyld: Library not loaded: /usr/local/opt/openldap/lib/libldap-2.4.2.dylib
  Referenced from: /usr/local/opt/php@7.1/bin/php
  Reason: image not found
Abort trap: 6

在尝试了很多不同的方法后,我只是运行brew install openldap,它修复了它。注意,我已经运行了brew update和brew upgrade,但只有在我手动安装openldap之后,它才真正工作。

以上这些对我都不起作用,但是brew重新安装icu4c起作用了。

对于那些仍然有这个问题的人:

这是苹果方面一直存在的问题,对我来说有效的方法是升级到ios 13.4(测试版)。装好后效果很好。