我正在开发一个插件包, say MyPlugIn.bundle
申请, say BigApp.app
. 该捆绑包需要 dylib, say 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 可执行路径.
Any 解决方法对此,没有绝对路径,因此它将继续工作Mac OS X 10.4(老虎)?谢谢。