Я разрабатываю пакет плагинов, скажем 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 не загружает этот пакет, а Mac OS X Console.app регистрирует следующее:
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
Похоже, что @executable_path не заменяется исполняемым файлом MyPlugIn.bundle, а с помощью исполняемого файла BigApp.app.
Любой обходной путь к этому, без абсолютного пути и чтобы он работал на Mac OS X 10.4 (Tiger)? Спасибо.