我正在尝试运行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不高兴的信息。