dylib @executable_path соединяют проблему каналом в сменном пакете

Я разрабатываю сменный пакет, говорю 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

Кажется, что @executable_path не заменяется исполняемым путем MyPlugIn.bundle, но исполняемым путем BigApp.app.

Какое-либо обходное решение к этому, без полного пути и так, чтобы это работало над Mac OS X 10.4 (Тигр)? Спасибо.

12
задан moala 19 January 2010 в 15:07
поделиться