使用MinGW 4.7.2每个编译的Qt 4应用程序崩溃 - 甚至是之前运行过的程序。
简单程序为例:
#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);
[...]
答案 0 :(得分:5)
您需要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构建的版本相同。