无法 运行 OSX 使用 macdeployqt 创建的应用程序。使用 Fusion 样式时缺少 Cocoa 插件
Can't run OSX app created with macdeployqt. Missing Cocoa plugin when using Fusion style
使用 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 文件并找到示例下的二进制文件时。app/Contents/MacOS/example 和 运行 那个,我得到了一个终端 window告诉我以下消息。)
This application failed to start because it could not find or load the Qt platform plugin "cocoa".
Reinstalling the application may fix this problem.
Abort trap: 6
因此,找不到 cocoa 插件。但是,我在这个路径中有 cocoa 插件:
例子.app/Contents/PlugIns/platforms/libqcocoa.dylib
我想我需要使用 otool
和 install_name_tool
命令来修复 macdeployqt
损坏的东西,但不知道该技术是什么。
有些博客可能会提到在 QApplication a(argc, argv);
行之前添加以下样式行:
QApplication::setStyle(QStyleFactory::create("Fusion"));
如果你这样做,Qt 5.5 会抛出一个 Cocoa 错误,当你尝试通过 macdeployqt 部署它时应用程序会崩溃,但在 Qt Creator 中 运行 它不会崩溃.
修复很简单。博客是错误的——将样式行放在 QApplication a(argc, argv);
行之后,而不是之前。现在,当您通过 macdeployqt 部署时,Cocoa 崩溃问题就消失了。
使用 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 文件并找到示例下的二进制文件时。app/Contents/MacOS/example 和 运行 那个,我得到了一个终端 window告诉我以下消息。)
This application failed to start because it could not find or load the Qt platform plugin "cocoa".
Reinstalling the application may fix this problem.
Abort trap: 6
因此,找不到 cocoa 插件。但是,我在这个路径中有 cocoa 插件:
例子.app/Contents/PlugIns/platforms/libqcocoa.dylib
我想我需要使用 otool
和 install_name_tool
命令来修复 macdeployqt
损坏的东西,但不知道该技术是什么。
有些博客可能会提到在 QApplication a(argc, argv);
行之前添加以下样式行:
QApplication::setStyle(QStyleFactory::create("Fusion"));
如果你这样做,Qt 5.5 会抛出一个 Cocoa 错误,当你尝试通过 macdeployqt 部署它时应用程序会崩溃,但在 Qt Creator 中 运行 它不会崩溃.
修复很简单。博客是错误的——将样式行放在 QApplication a(argc, argv);
行之后,而不是之前。现在,当您通过 macdeployqt 部署时,Cocoa 崩溃问题就消失了。