1

使用 Qt 5.5.0 C++,我制作了一个非常简单的基于小部件的应用程序示例——只是一个没有按钮的表单,采用默认设置。如果我编译它并通过 macdeployqt 运行它,然后从 dmg 文件中运行应用程序,它运行得很好。但是,如果我编辑 main.cpp 并将这一行添加到...

QApplication::setStyle(QStyleFactory::create("Fusion"));

……QApplication a(argc, argv);行前……

...这当然需要我的 mainwindow.h 有#include <QtWidgets>一行,然后通过 macdeployqt 运行它,我收到以下错误。(实际上,我遇到了崩溃,但是当我打开 example.app 文件并在 example.app/Contents/MacOS/example 下找到二进制文件并运行它时,我得到一个终端窗口,告诉我以下消息。)

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

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

中止陷阱:6

所以,它很难找到可可插件。但是,我在此路径中有可可插件:

example.app/Contents/PlugIns/platforms/libqcocoa.dylib

我想我需要使用otoolandinstall_name_tool命令来修复损坏的东西macdeployqt,但不知道该技术是什么。

4

1 回答 1

0

一些博客可能会提到在该行之前添加以下样式QApplication a(argc, argv);行:

QApplication::setStyle(QStyleFactory::create("Fusion"));

如果你这样做,Qt 5.5 将抛出一个 Cocoa 错误,当你尝试通过 macdeployqt 部署它时应用程序会崩溃,但在 Qt Creator 中运行它时不会崩溃。

修复很简单。博客是错误的——将样式行放在行之后QApplication a(argc, argv);,而不是之前。现在,当您通过 macdeployqt 进行部署时,Cocoa 崩溃问题就消失了。

于 2015-11-25T08:49:52.123 回答