dylib:没有找到图片,但路径看起来正确
问题描述:
在一台计算机,当它无法加载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
答
继Dave Dribin's Blog的建议,我转而使用@rpath
代替@loader_path
,虽然我,为什么可能已经解决了这个问题有点模糊。
注意,我不得不使用@rpath/
,而不是@rpath
为Runpath Search Paths
值(库在同一目录中可执行文件加载器),或者我否则将继续得到“库未找到”的错误。
答
您应该添加框架“二进制编程”不“链接的框架和库”(尽管它本身,当你将它添加到嵌入式二进制文件添加到链接的框架)。
如果youre运行10.6.8不应该将它用于x86_64的建立? (这并不似乎是在目前:-)问题) – prodigitalson
的应用程序依赖于不容易的x86_64的(例如,较旧的视频东西)建库,所以我们使用的i386作为唯一的架构。但不,我不认为这是问题。 –