3

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

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

(请注意,我没有足够的声誉来发布图片,这就是我提供图片链接的原因)

我的问题:

  • 我的程序不在 qt creator 之外执行。

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

我已经做了什么:

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

  • 我确保我的程序在 qt creator 中运行,没有错误。

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

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

4

3 回答 3

4

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

于 2013-03-20T02:45:14.147 回答
1

我的应用程序现在可以工作了。请参阅下面的解决方案,了解我是如何做到的。

Dmitry 是正确的,MinGW GCC 4.7与 Qt 5.0.1兼容,我通过这篇文章验证了这一点

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

于 2013-03-03T19:37:11.903 回答
0

我的猜测是 Qt 出现某种启动时断言失败(例如在 QApplication 构造函数中),并且正在向 stdout(或 stderr?)打印一条消息,然后错误地“以不寻常的方式终止应用程序”。

如果是这种情况,那么您将想了解该错误消息的内容。一种方法是将以下代码临时添加到 main() 的顶部:

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

...然后重新编译您的程序并再次运行它。当它运行时,应该会出现一个 MS-DOS 外壳窗口,观察它是否有任何关于 Qt 为何不满意的信息性消息。

于 2013-02-19T04:40:05.050 回答