dylib: изображение не найдено, но путь выглядит правильно - PullRequest
1 голос
/ 23 ноября 2011

На одном компьютере демон launchd OS X аварийно завершает работу, когда ему не удается загрузить среду MailCore.Тем не менее, фреймворк находится в ожидаемом месте, и демон работает на моем компьютере так же хорошо, как и на некоторых других.Кто-нибудь знает, что может быть причиной ошибки «изображение не найдено»?Или как устранить эту проблему?

Библиотека MailCore установлена ​​в:

/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

Ответы [ 2 ]

0 голосов
/ 18 апреля 2015

Вы должны добавить фреймворк в «Embedded binaries», а не в «Связанные фреймворки и библиотеки» (хотя он добавится в Linked frameworks, когда вы добавите его в «Embedded binaries»).

0 голосов
/ 29 ноября 2011

Следуя совету в Блоге Дейва Дрибина , я переключился на использование @rpath вместо @loader_path, хотя я немного не уверен, почему это могло бы решить проблему.

Обратите внимание, что мне пришлось использовать @rpath/ вместо @rpath для значения Runpath Search Paths (библиотека находится в том же каталоге, что и исполняемый файл загрузчика), иначе я бы продолжал получать ошибки "библиотека не найдена" .

...