1

我正在使用 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();
}
4

1 回答 1

3

您可以从 qt-project.org 下载的 Qt 4.8.3 MinGW 库是使用 MinGW 4.4 构建的。如果您使用的是该库,则在尝试使用 MinGW 4.7 时会遇到问题。

MinGW 4.7.0 将 C++ 类成员的默认调用约定更改为__thiscall,因此使用 MinGW 4.7.0 或更高版本构建的 C++ 程序与使用早期版本的 MinGW 构建的库或目标文件不兼容。有关更多详细信息,请参阅https://stackoverflow.com/a/13134812/12711

您需要使用旧版本的 MinGW(最好是 4.4),或者您需要使用您正在使用的 MinGW 版本重建 Qt 库。如果您尝试重建 Qt 并遇到问题,这个 SO 答案可能有一些有用的指示。

于 2012-11-10T03:24:39.430 回答