2016-02-05 74 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) 

如果錯誤仍然存​​在,那麼我就知道它不是路徑問題。