【问题标题】:QApplication segmentation faultQApplication分段错误
【发布时间】:2013-01-19 01:47:55
【问题描述】:

尝试创建QApplication 对象时发生崩溃。这是我的代码:

#include <QLabel>
#include <QApplication>

int main(int argc, char* argv[])
{
    QApplication app(argc, argv);
    return app.exec();
}

我使用的是 Qt 4.8.4 版和 MinGW 编译器。我的应用程序在运行 QCoreApplicationPrivate::processCommandLineArguments 方法时崩溃。谁能告诉我如何解决这个问题?

【问题讨论】:

  • 您是否给它提供了任何导致问题的特定命令行参数,或者它总是会发生?
  • 不,我不是。每当我执行我的应用程序时,都会出现这个问题。 Nemanja Boric 完全正确,这是因为 Qt 库版本和 mingw gcc 版本不匹配。我自己编译 Qt 库解决了这个问题,因为很难找到过时的 mingw 版本。
  • @Zimka:是的,mingw 版本编号存在混乱。目前我正在测试它的第三个版本,有你描述的问题(除了其他)。

标签: qt segmentation-fault qt4.8


【解决方案1】:

显然,此错误是由 Qt 二进制文件和您的编译器的二进制不兼容引起的。

来自here:

有针对 Qt 4 和 Qt 5 的 MinGW 的二进制安装程序。 Qt 4 是使用 gcc 4.4 使用 aMinGW.org 工具链构建的。这 Qt 5 基于 MinGW 构建工具链 [sourceforge.net] 使用 gcc 4.7.2。 Qt 5 安装程序也自带工具链。

如果您使用的是 gcc 4.7(我认为这是最新 MinGW 的默认版本),则无法使用 Qt 4 预编译的二进制文件进行编译(嗯,您可以,但是 it will not work)。

所以,要么将你的 gcc 降级到 4.4 版本,要么将 Qt 升级到最新 (Qt 5) 版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-04
    • 2014-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-28
    相关资源
    最近更新 更多