我有一个程序链接到库“ 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)
如果错误仍然存在,那么我知道它不是路径问题。