2016-02-05 50 views
0

我有一个链接到库“libao_optimization.dylib”的程序。运行时,大部分时间没问题。但偶尔,我得到以下错误:Mac OS X动态链接程序偶尔工作

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上体验过这一点?

+0

目录真的是'/ User/gw/...'而不是'/ Users/gw/...'?这在Mac上很不寻常; '/ Users /'目录是主目录的默认持有者。注意Mac OS X 10.11 El Capitan和SIP(系统完整性保护);你无法轻易地在El Capitan的任意位置创建文件夹。 “/ User”文件夹是网络安装的还是其他的? (另外,苹果是否真的拼错了Libaray呢?Copy'n'paste更好,它可以帮助我们了解你真正看到的东西!) –

回答

0

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

otool -L exeFileName 

检查,然后用

install_name_tool -change 

对于新机调整的路径,我配置的环境变量

DYLD_LIBRARY_PATH 

当我仍然得到错误,我测试一下,看看如果静态版本运行良好没有错误。例如,对于一些升压dyld的库,这将工作:

set(Boost_USE_STATIC_LIBS ON) 

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