如何让Mac在Program.App/Contents/Plugins目录中查找插件?

时间:2014-12-12 20:41:47

标签: c++ macos qt gcc

我有一个链接到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目录中查找插件?

1 个答案:

答案 0 :(得分:1)

首先,我认为将dylib放在内容/框架而不是内容/插件中更为标准。

其次,dylib的安装路径记录在dylib本身中。您可以使用install_name_tool命令更改该路径,如下所示:

install_name_tool -id @loader_path/../Frameworks/libqjpeg.dylib libqjpeg.dylib

然后将您的应用与修改后的libqjpeg.dylib副本链接起来。