Qt应用程序分段错误使用MinGW 4.7.2(Qt Application segmentatio

2019-07-17 10:26发布

使用的MinGW 4.7.2编译每4 Qt的应用程序崩溃 - 甚至是跑前程序。

  • MinGW的:4.7.2
  • QT:4.8.3
  • 二手利布斯:
    • QtCore4.dll
    • QtCored4.dll
    • QtGui4.dll(如果使用GUI)
    • QtGuid4.dll(如果使用GUI)

简单的程序为例:

#include <QtGui/QApplication>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv); /* Crash here */

    return app.exec();
}

崩溃: 信号接收:SIGSEGV(分段故障)

调用堆栈:

ZN23QCoreApplicationPrivate27processCommandLineArgumentsEv+68: mov    (%edx,%esi,1),%eax
ZN16QCoreApplication4initEv+88: lea    -0x8(%ebp),%esp
ZN16QCoreApplicationC2ER23QCoreApplicationPrivate+47: add    $0x24,%esp
ZN12QApplicationC1ERiPPci+75: movl   $0x67ef2768,(%ebx)
QApplication app(argc, argv);
[...]

Answer 1:

您将需要MinGW的4.4。 要使用MinGW的4.7.2,你需要自己编译的Qt它。 飞机坠毁是由于MinGW的版本之间不兼容ABI。

看到这个关于如何建立Qt的:

http://qt-project.org/wiki/Building_Qt_Desktop_for_Windows_with_MinGW

在一般情况下,下载Qt的时候,要注意MinGW的版本,它已经建有。 如果你想使用自己的MinGW的安装,它需要是同一版本的Qt的一个与建造。



文章来源: Qt Application segmentation fault with MinGW 4.7.2
标签: c++ qt qt4 mingw