Я разрабатываю комплект плагинов , скажем MyPlugIn.bundle
для приложения , скажем BigApp.app
. Для этого комплекта требуется dylib , скажем MyPlugIn.bundle/Contents/Resources/library.dylib
. Я переместил пути для library.dylib, как я сделал бы для простого пакета приложений:
$ otool -L MyPlugIn.bundle/Contents/MacOS/MyPlugIn
MyPlugIn.bundle/Contents/MacOS/MyPlugIn:
@executable_path/../Resources/library.dylib (compatibility version 0.0.0, current version 0.0.0)
[...]
$ otool -L MyPlugIn.bundle/Contents/Resources/library.dylib
MyPlugIn.bundle/Contents/Resources/library.dylib:
@executable_path/../Resources/library.dylib (compatibility version 0.0.0, current version 0.0.0)
[...]
Но BigApp.app не удается загрузить этот пакет, и Console.app для Mac OS X записывает следующее:
19/01/10 15:42:59 BigApp[51516] Error loading /Library/Application Support/BigApp/Plug-Ins/MyPlugIn.bundle/Contents/MacOS/MyPlugIn: dlopen(/Library/Application Support/BigApp/Plug-Ins/MyPlugIn.bundle/Contents/MacOS/MyPlugIn, 262): Library not loaded: @executable_path/../Resources/library.dylib
Referenced from: /Library/Application Support/BigApp/Plug-Ins/MyPlugIn.bundle/Contents/MacOS/MyPlugIn
Reason: image not found
Кажется, что @ executetable_path заменяется не путем к исполняемому файлу MyPlugIn.bundle, а путем BigApp.app для исполняемого файла .
Любой обходной путь к этому, без абсолютного пути и чтобы он работал на Mac OS X 10.4 (Tiger) ? Спасибо.