Qt 5.0.1:应用程序将不会在Qt创建者之外执行

Qt 5.0.1: Application will not execute outside of Qt creator

本文关键字:Qt 创建者 执行 应用程序      更新时间:2023-10-16

我正在尝试运行TransitTalker.exe程序,这是我从qt编译的代码,如图所示:

https://www.dropbox.com/s/ypgklrm4uschri5/filecontents.png

(注意,我没有足够的信誉来张贴图片,这就是我提供图片链接的原因)

我的问题:

  • 我的程序不会在qt创建者之外执行。

  • 我在尝试运行TransitTalker.exe时收到以下消息:"此应用程序已请求运行时以异常方式终止它。请联系应用程序的支持团队以获取更多信息。"

我已经做了什么:

  • 我已经添加了所需的dll(除了GPSVC.dll和IESHIMS.dll)。我通过一个名为dependencywalker的程序找到了所需dll。

  • 我确保我的程序在qtcreator中运行,没有任何错误。

我的主要问题:为什么我收到此运行时消息:"此应用程序以异常方式请求运行时终止它。请与应用程序的支持团队联系以获取更多信息。"。我希望能够将我的程序TransitTalker.exe作为qt独立应用程序运行。

运行qt creator 5.0.1(MINGW 47_32)。我在同一台计算机上也有Visual Studio 2012。

我知道这被标记为已解决,但我遇到了同样的问题,我通过从Qt二进制文件目录复制libEGL.dll来解决它。出于某种奇怪的原因,它没有显示在依赖项检查中,我不得不查看长调试日志,看看实际加载了哪些库。(而且它不在您的图像中,所以很可能是同样的问题)

我的应用程序现在可以工作了。请参阅下面关于我如何做到这一点的解决方案。

Dmitry认为MinGW GCC 4.7与Qt 5.0.1不兼容是正确的,我通过后验证了这一点

我的解决方案:我安装了使用MinGW GCC 4.4的Qt Creator 4.8 SDK。我能够在Qt Creator之外运行我的可执行应用程序。

我的猜测是Qt在启动时断言失败(例如在QApplication构造函数中),正在向stdout(或stderr?)打印一条消息,然后,呃,"以异常方式终止应用程序"。

如果是这样的话,那么你会想知道错误消息是怎么说的。一种方法是将以下代码临时添加到main()的顶部:

AllocConsole();
freopen("conin$",  "r", stdin);
freopen("conout$", "w", stdout);
freopen("conout$", "w", stderr);

然后重新编译程序并再次运行。当它运行时,应该会出现一个MS-DOS shell窗口,注意它是否有任何关于Qt不高兴的信息。