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

Posted

技术标签:

【中文标题】如何让 Mac 在 Program.App/Contents/Plugins 目录中查找插件?【英文标题】:How do I get Mac to look for plugins in the Program.App/Contents/Plugins directory? 【发布时间】:2014-12-12 20:41:47 【问题描述】:

我有一个链接到libqjpeg.dylib 的Qt 应用程序。在开发机器上,库位于/Applications/Qt/Desktop/Qt/4.8.0/gcc/plugins/imageformats。我将库放在目标机器上的Program.App/Contents/Plugins 目录中。

但是,当我通过 strace(Mac 上的 dtruss)运行它时,我可以看到应用程序只有统计信息

/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】:

首先,我认为将dylibs放在Contents/Frameworks而不是Contents/Plugins中更标准。

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

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

然后将您的应用与修改后的 libqjpeg.dylib 副本相关联。

【讨论】:

感谢这个难题:唯一的问题是,在开发机器上,库将位于前面提到的路径中。有没有办法让它同时检查? 我认为你可以使用@rpath 做到这一点。有关说明,请参阅 this blog post。

以上是关于如何让 Mac 在 Program.App/Contents/Plugins 目录中查找插件?的主要内容,如果未能解决你的问题,请参考以下文章

如何让Mac,Windows可以互相远程

Mac电脑如何让聚焦功能显示在菜单栏?

如何让mac虚拟机识别iphone

Mac如何让调整窗口大小更简单

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

如何让 Firefox 在 Mac OSX 上与 Selenium WebDriver 一起工作