我使用的是Qt 4.8.3 mingw 4.7 Windows 7 x64。 exe文件不起作用..
Problem signature:
Problem Event Name: APPCRASH
Application Name: hello.exe
Application Version: 0.0.0.0
Application Timestamp: 509d1749
Fault Module Name: QtCore4.dll
Fault Module Version: 4.8.3.0
Fault Module Timestamp: 504ee1c2
Exception Code: c0000005
Exception Offset: 001103e8
OS Version: 6.1.7601.2.1.0.256.4
Locale ID: 1067
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789
以下是非常简单的源代码:
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QLabel *label = new QLabel("Hello Qt!");
label->show();
return app.exec();
}
答案 0 :(得分:3)
您可以从qt-project.org下载的Qt 4.8.3 MinGW库是使用MinGW 4.4构建的。如果您正在使用该库,则在尝试使用MinGW 4.7时会遇到问题。
MinGW 4.7.0 changed the default calling convention for C++ class members to __thiscall
,因此使用MinGW 4.7.0或更高版本构建的C ++程序与使用早期版本的MinGW构建的库或目标文件不兼容。有关详细信息,请参阅https://stackoverflow.com/a/13134812/12711。
您需要使用较旧版本的MinGW(理想情况下为4.4),否则您需要使用您正在使用的MinGW版本重建Qt库。如果您尝试重建Qt并遇到问题,this SO answer可能会有一些有用的指示。