2010-06-04 56 views
5

Hoookay,使dyld:庫未加載錯誤的Mac OS

所以我知道我即將得到了十幾個「加載的lib虛擬」回答這個,但在這裏不用...

垃圾。框架正在導出另一個項目的一些對象(junk.app),因此我可以在集羣上的remote.app節點上使用它。我可以編譯junk.framework(我認爲這對於動態加載沒有任何意義),編譯並鏈接remote.app到junk.framework。

然而,當我運行remote.app我得到一個錯誤的這個可愛的寶石:

dyld: Library not loaded: @executable_path/../Frameworks/libtiff.dylib 
    Referenced from: /Users/slate/Documents/junk/build/Development/junk.framework/Versions/A/junk 
    Reason: image not found 

我認爲正在發生的事情是,junk.framework從某個位置加載libtiff.dylib它找不到它。 junk.framework是我正在研究的另一個項目,我只需構建(最終)。

當我在我的垃圾目標libtiff.dylib它給我/Users/slate/Documents/osirix/osirix/Binaries/LibTiff/libtiff.dylib作爲一個路徑...我已經absolute path選擇。那爲什麼它不在那裏尋找它?

呃......爲什麼它看着@executable_path /../ ????那個環境到底在哪裏,我可以改變它?

編輯---

otool -L使我這個:

/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 677.26.0) 
/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 949.54.0) 
/System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate (compatibility version 1.0.0, current version 4.0.0) 
/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 12.0.0) 
/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0) 
@executable_path/../Frameworks/libtiff.dylib (compatibility version 11.0.0, current version 11.4.0) 
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.3) 
/System/Library/Frameworks/QTKit.framework/Versions/A/QTKit (compatibility version 1.0.0, current version 1.0.0) 
/System/Library/Frameworks/QuickTime.framework/Versions/A/QuickTime (compatibility version 1.0.0, current version 1327.73.0) 
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0) 
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0) 
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.4) 
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 227.0.0) 
/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 32.0.0) 
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 476.19.0) 
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 34.0.0) 
/System/Library/Frameworks/vecLib.framework/Versions/A/vecLib (compatibility version 1.0.0, current version 242.0.0) 

回答

9

libtiff.dylib建時已指定@executable_path設置。 (如果您構建自己的dylib或框架,則它是安裝目錄(INSTALL_PATH)構建設置。)可以使用install_name_tool命令更改它。

+0

AH所以這就是爲什麼我找不到它。謝謝。 – 2010-06-04 17:08:07

相關問題