【问题标题】:qt exe file doesn't runqt exe文件不运行
【发布时间】:2023-03-21 12:24:01
【问题描述】:

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

【问题讨论】:

  • 您是否尝试调试过您的应用程序?
  • 只有在尝试手动启动 exe 时才会出现这种情况?从 Qt Creator 中运行它时是否有效?
  • Sinxis vs 2012 说 hello.exe 中 0x6E1D03E8 (QtCore4.dll) 处出现未处理异常:0xC0000005:访问冲突读取位置 0x01040807。
  • Nikos 我试过了.. 不工作
  • 你从哪里得到的dll?确保 dll 对应于您的 Qt 版本。

标签: c++ qt mingw exe


【解决方案1】:

您可以从 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 可能会有一些有用的指示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-06
    • 1970-01-01
    • 1970-01-01
    • 2018-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多