Qt5找不到平台插件Mac OS X.

时间:2013-11-14 20:53:00

标签: c++ macos qt

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

  

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

     

重新安装应用程序可能会解决此问题。   该计划意外地完成了。

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

另外值得指出的是,我首先尝试使用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”

3 个答案:

答案 0 :(得分:2)

重新macdeployqt失败:似乎,对于macdeployqt的参数,您将路径传递给可执行文件而不是传递给bundle的路径。即只需传递... / MyProgram.app而不是... / MyProgram.app/Contents/MacOS/MyProgram。

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

答案 1 :(得分:1)

为卡米尔克利梅克的解决方案提供更多关注(它为我解决了问题):

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

所以,请确保例如:

which macdeployqt

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

答案 2 :(得分:0)

我使用Qt 5.4.2在OS X Lion中出现此错误。当我安装Xcode命令行实用程序时,错误就消失了macdeployqt