2011-11-22 121 views
1

在一臺計算機,當它無法加載MailCore框架的OS X的launchd守護程序崩潰。但是,該框架處於預期的位置,守護程序在我的計算機以及其他幾個計算機上正常運行。有誰知道什麼可能導致「圖像未找到」錯誤?或者如何解決這個問題?dylib:沒有找到圖片,但路徑看起來正確

的MailCore LIB安裝在:

/Library/Application Support/ArgusLink/bin/MailCore.framework/Versions/A/MailCore

二進制試圖加載它安裝在(和通過的launchd運行):

/Library/Application Support/ArgusLink/bin/arguslinkd

安裝名稱MailCore是:

@loader_path/MailCore.framework/Versions/A/MailCore

MailCore是專爲i386架構。守護進程崩潰的計算機正在運行10.6.8,我已成功測試該計算機。

完全崩潰報告:

Process:   arguslinkd [349] 
Path:   /Library/Application Support/ArgusLink/bin/arguslinkd 
Identifier:  arguslinkd 
Version:   ??? (???) 
Code Type:  X86 (Native) 
Parent Process: launchd [1] 

Date/Time:  2011-11-22 08:58:30.117 -0500 
OS Version:  Mac OS X 10.6.8 (10K549) 
Report Version: 6 

Exception Type: EXC_BREAKPOINT (SIGTRAP) 
Exception Codes: 0x0000000000000002, 0x0000000000000000 
Crashed Thread: 0 

Dyld Error Message: 
    Library not loaded: @loader_path/MailCore.framework/Versions/A/MailCore 
    Referenced from: /Library/Application Support/ArgusLink/bin/arguslinkd 
    Reason: image not found 

Binary Images: 
0x8fe00000 - 0x8fe4162b dyld 132.1 (???) <A4F6ADCC-6448-37B4-ED6C-ABB2CD06F448> 
    /usr/lib/dyld 
+0

如果youre運行10.6.8不應該將它用於x86_64的建立? (這並不似乎是在目前:-)問題) – prodigitalson

+0

的應用程序依賴於不容易的x86_64的(例如,較舊的視頻東西)建庫,所以我們使用的i386作爲唯一的架構。但不,我不認爲這是問題。 –

回答

0

Dave Dribin's Blog的建議,我轉而使用@rpath代替@loader_path,雖然我,爲什麼可能已經解決了這個問題有點模糊。

注意,我不得不使用@rpath/,而不是@rpathRunpath Search Paths值(庫在同一目錄中可執行文件加載器),或者我否則將繼續得到「庫未找到」的錯誤。

0

您應該添加框架「二進制編程」不「鏈接的框架和庫」(儘管它本身,當你將它添加到嵌入式二進制文件添加到鏈接的框架)。