我有一个链接到libqjpeg.dylib
的Qt应用程序。在开发机器上,库位于/Applications/Qt/Desktop/Qt/4.8.0/gcc/plugins/imageformats
中。我将库放在目标机器上的Program.App/Contents/Plugins
目录中。
然而,当我通过strace运行它(在mac上dtruss)我可以看到应用程序只有stats
/Applications/Qt/Desktop/Qt/4.8.0/gcc/plugins/imageformats/libqjpeg.dylib
/Users/USER/lib/libqjpeg.dylib
/usr/local/lib/libqjpeg.dylib
/usr/lib/libqjpeg.dylib
如何让它在Program.App/Contents/Plugins
目录中查找插件?
答案 0 :(得分:1)
首先,我认为将dylib放在内容/框架而不是内容/插件中更为标准。
其次,dylib的安装路径记录在dylib本身中。您可以使用install_name_tool
命令更改该路径,如下所示:
install_name_tool -id @loader_path/../Frameworks/libqjpeg.dylib libqjpeg.dylib
然后将您的应用与修改后的libqjpeg.dylib副本链接起来。