qt exe文件无法运行

时间:2012-11-09 14:58:38

标签: c++ qt mingw exe

我使用的是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();
}

1 个答案:

答案 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可能会有一些有用的指示。