gpt4 book ai didi

c++ - 无法运行使用 macdeployqt 创建的 OSX 应用程序。使用 Fusion 样式时缺少 Cocoa 插件

转载 作者:太空宇宙 更新时间:2023-11-04 13:24:11 28 4
gpt4 key购买 nike

使用 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 下找到二进制文件并运行它时,我得到一个终端窗口,告诉我以下消息。)

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 插件:

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

我想我需要使用 otoolinstall_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 崩溃问题就消失了。

关于c++ - 无法运行使用 macdeployqt 创建的 OSX 应用程序。使用 Fusion 样式时缺少 Cocoa 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33909683/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com