【发布时间】:2013-11-28 01:57:46
【问题描述】:
我正在尝试根据this link 在 Mac 上部署 Qt 程序。在我的可执行文件和它所依赖的所有库(我复制到应用程序包中)上使用 otool -L 后,当我尝试运行它时,我在 QtCreator 的应用程序输出中收到此错误。
此应用程序无法启动,因为它无法找到或加载 Qt 平台插件“cocoa”。
重新安装应用程序可能会解决此问题。 程序意外结束。
我尝试复制qt平台插件libqcocoa.dylib并更改qt.conf中的插件目录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”
【问题讨论】:
-
当你编译你的程序并拥有一个应用程序包时,如果你右键单击该包并选择“显示包内容”,你可以在“MyProgram.app”中查看二进制文件是否存在/Contents/MacOS/MyProgram" 你能确认它在那里吗?
-
是的,它就在那里,这就是我运行所有 install_name_tool 命令的文件。我最终恢复到 Qt4.8,它现在可以工作了。
-
也许你可以试试这个修改版的 macdeployqt:github.com/MaximAlien/macdeployqt 我发现在 Mac 上部署 Qt5 真的很不简单,这个版本的 macdeployqt 帮助了我。
-
您的操作系统上是否有可能同时拥有 Qt 4 和 Qt 5?如果你这样做,请直接从 Qt5 目录调用 macdeployqt,即:~/Qt/5.5/clang64/bin/macdeployqt - 作为参数给出应用程序包(MyProgram.app)而不是应用程序可执行文件的路径 - 它应该可以正常工作(至少对于 OS X 10.10 上的 Qt 5.4 和 5.5)