Macos dylib:未找到图像,但路径看起来正确
在一台计算机上,当OSX启动守护程序无法加载MailCore框架时,它将崩溃。但是,框架位于预期位置,并且守护进程在我的计算机以及其他一些计算机上正常运行。有人知道“未找到图像”错误的原因吗?或者如何解决此问题 MailCore库安装在:Macos dylib:未找到图像,但路径看起来正确,macos,dylib,launchd,Macos,Dylib,Launchd,在一台计算机上,当OSX启动守护程序无法加载MailCore框架时,它将崩溃。但是,框架位于预期位置,并且守护进程在我的计算机以及其他一些计算机上正常运行。有人知道“未找到图像”错误的原因吗?或者如何解决此问题 MailCore库安装在: /Library/Application Support/ArgusLink/bin/MailCore.framework/Versions/A/MailCore 尝试加载的二进制文件安装在(并通过launchd运行): /Library/Applicatio
/Library/Application Support/ArgusLink/bin/MailCore.framework/Versions/A/MailCore
尝试加载的二进制文件安装在(并通过launchd运行):
/Library/Application Support/ArgusLink/bin/arguslinkd
MailCore的安装名称为:
@loader\u 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
进程:arguslinkd[349]
路径:/Library/Application Support/ArgusLink/bin/arguslinkd
标识符:arguslinkd
版本:???(???)
代码类型:X86(本机)
父进程:已启动[1]
日期/时间:2011-11-22 08:58:30.117-0500
操作系统版本:Mac OS X 10.6.8(10K549)
报告版本:6
异常类型:EXC_断点(SIGTRAP)
异常代码:0x0000000000000002,0x0000000000000000
崩溃线程:0
Dyld错误消息:
未加载库:@loader\u path/MailCore.framework/Versions/A/MailCore
引用自:/Library/Application Support/ArgusLink/bin/arguslinkd
原因:找不到图像
二进制图像:
0x8fe00000-0x8fe4162b dyld 132.1(?)
/usr/lib/dyld
根据上的建议,我转而使用@rpath
而不是@loader\u path
,尽管我有点不清楚为什么这可能解决了这个问题
请注意,对于
运行路径搜索路径
值(库与加载程序可执行文件位于同一目录中),我必须使用@rpath/
而不是@rpath
),否则我将继续得到“未找到库”错误。您应该将框架添加到“嵌入的二进制文件”而不是“链接的框架和库”(尽管当您将其添加到嵌入的二进制文件时,它会将自身添加到链接的框架中)。如果您运行的是10.6.8,它不应该为x86\u 64构建吗?(这似乎不是目前的问题:-)该应用程序依赖于无法轻松为x86_64构建的库(例如较旧的视频内容),因此我们使用i386作为唯一的体系结构。但不,我认为这不是问题所在。