15

我正在尝试根据此链接在 Mac 上部署 Qt 程序。在我的可执行文件和它所依赖的所有库上使用 otool -L 后,我将它们复制到应用程序包中,当我尝试运行它时,我在 QtCreator 的应用程序输出中收到此错误。

此应用程序无法启动,因为它无法找到或加载 Qt 平台插件“cocoa”。

重新安装应用程序可能会解决此问题。程序意外结束。

我已经尝试根据this复制qt平台插件libqcocoa.dylib并更改qt.conf中的插件目录,但它仍然失败。

另外值得指出的是,我首先尝试使用 qt 的 macdeployqt 工具,但它失败并显示此消息,尽管这是我第一次在可执行文件上运行它:

错误:找不到“MyProgram.app/Contents/MacOS/MyProgram”的捆绑二进制文件错误:“otool:无法打开文件:(没有这样的文件或目录)”

警告:

警告:在“MyProgram.app/Contents/MacOS/MyProgram”中找不到要部署的任何外部 Qt 框架

警告:也许 macdeployqt 已在“MyProgram.app/Contents/MacOS/MyProgram”上使用?

警告:如果是这样,您需要在重试之前重建“MyProgram.app/Contents/MacOS/MyProgram”。错误:找不到“MyProgram.app/Contents/MacOS/MyProgram”的捆绑二进制文件

错误:从“/Developer/Applications/Qt/plugins/platforms/libqcocoa.dylib”复制文件失败

错误:到“MyProgram.app/Contents/MacOS/MyProgram/Contents/PlugIns/platforms/libqcocoa.dylib”

错误:从“/Developer/Applications/Qt/plugins/printsupport/libcocoaprintersupport.dylib”复制文件失败

错误:到“MyProgram.app/Contents/MacOS/GraphiteMiniEditor/Contents/PlugIns/printsupport/libcocoaprintersupport.dylib”

4

3 回答 3

2

重新 macdeployqt 失败:看起来,对于 macdeployqt 的参数,您传递的是可执行文件的路径,而不是包的路径。即只通过.../MyProgram.app 而不是.../MyProgram.app/Contents/MacOS/MyProgram。

(但我也无法在沙盒应用程序中找到 libqcocoa。我可能会求助于将其静态链接到我的应用程序中。)

于 2014-06-05T13:08:47.653 回答
1

为了给 Kamil Klimek 的解决方案更多的关注(它为我解决了这个问题):

当我使用离线安装程序安装 QtCreator(Qt 5.x)时遇到了同样的问题,但显然也通过 Homebrew 安装了 Qt(4.x)(可能作为依赖项引入)。用 5.x 编译代码,用 4.xmacdeployqt脚本部署它不起作用。

因此,请确保例如:

which macdeployqt

macdeployqt来自用于编译代码的相同 Qt 版本/路径的调用。

于 2016-09-01T08:12:08.180 回答
0

我在使用 Qt 5.4.2 的 OS X Lion 上遇到了这个错误。当我安装 Xcode 命令行实用程序时,错误就消失了并且macdeployqt起作用了。

于 2015-07-05T07:23:40.493 回答