我正在尝试根据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”
答案 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
。