我的程序意外地完成了

时间:2011-11-18 09:25:04

标签: c++ windows qt

这个最简单的程序在发布模式下编译时会出错,但在调试模式下编译很好:

#include <QApplication>

int main(int argc, char* argv[])
{
    QApplication app(argc,argv);

    return app.exec();
}

错误(从qt的控制台输出)

  

*启动C:\ excercizes \ QT_projects \ Line_Counter-build-desktop-Qt_4_7_4_for_Desktop _-_ MinGW_4_4__Qt_SDK__Release \ release \ Line_Counter.exe ...   该计划意外完成。   C:\ excercizes \ QT_projects \ Line_Counter-build-desktop-Qt_4_7_4_for_Desktop _ -_ MinGW_4_4__Qt_SDK__Release \ release \ Line_Counter.exe退出,代码为-1073741511 *

有人有这种经历吗?

2 个答案:

答案 0 :(得分:4)

值-1073741511是0xC0000139十六进制,这是错误代码STATUS_ENTRYPOINT_NOT_FOUND。这意味着某些DLL由EXE或其他DLL加载,但它缺少EXE或其他DLL期望的函数。

Event Viewer可能会显示错误发生时哪些DLL缺少什么功能。 Dependency Walker也会向您展示这个,以及整个DLL结构。

答案 1 :(得分:0)

在大多数情况下,这是因为缺少可执行文件所需的.dll文件。

最直接的方法是从Qt安装中复制以下文件(例如C:\Qt\Qt5.4.2\5.4\mingw491_32\bin):

  • icudt53.dll
  • icuin53.dll
  • icuuc53.dll
  • 的libstdc ++ - 6.dll
  • Qt5Core.dll

...进入DEBUG和RELEASE配置的/ debug和/ release目录。