我有一个程序链接到库“ libao_optimization.dylib”。当它运行时,大多数时候都可以。但是偶尔会出现以下错误:

dyld: Library not loaded: libao_optimization.dylib
  Referenced from: /User/gw/local/bin/tst_simulated_ngs_image_and_otfs
  Reason: image not found


适当的路径在DYLD_LIBRARY_PATH中。我什至尝试将完整路径放在可执行文件中

install_name_tool -change ...


但是,此错误有时仅会发生。其他时候,库会正常加载并运行程序。有人在Mac上体验过吗?

最佳答案

otool是调试dyld路径的方法。我通常会与

otool -L exeFileName


然后用

install_name_tool -change


对于新机器,我配置env var

DYLD_LIBRARY_PATH


当我仍然遇到错误时,我会进行测试以查看静态版本是否可以正常运行且没有错误。例如,对于某些boost dyld库,这将起作用:

set(Boost_USE_STATIC_LIBS ON)


如果错误仍然存​​在,那么我知道它不是路径问题。

10-06 11:09