Mac OS X动态链接器偶尔会工作

时间:2016-02-05 00:31:01

标签: c macos dyld

我有一个链接到库“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上体验过这个?

1 个答案:

答案 0 :(得分:0)

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

otool -L exeFileName

然后使用

调整路径
install_name_tool -change 

对于新机器,我配置了env var

DYLD_LIBRARY_PATH 

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

set(Boost_USE_STATIC_LIBS ON)

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