【问题标题】:Cannot run Qt example in Qt creator: The program has unexpectedly finished无法在 Qt creator 中运行 Qt 示例:程序意外完成
【发布时间】:2017-02-08 06:33:55
【问题描述】:

最近我尝试在 Windows 7 32bit 上从 Qt5.6.2 MSVC 2013 升级 Qt 到 5.8.0,我看到了奇怪的问题。

我从这个链接下载并安装了 Visual Studio 2015:https://www.visualstudio.com/downloads/

我安装Qt 5.8.0 MSVC 2015版本后,可以启动Qt Creator 4.2.1。在欢迎页面中,我选择了名为“通讯簿示例”的示例。然后点击“Configure”项目后,该项目在Qt Creator中列出。

现在我尝试构建项目,它是成功的。但是当我尝试运行该项目时,我收到了以下错误消息:

Starting C:\Qt\Examples\Qt-5.8\widgets\itemviews\build-addressbook-Desktop_Qt_5_8_0_MSVC2015_32bit-Debug\debug\addressbook.exe...
The program has unexpectedly finished.
C:\Qt\Examples\Qt-5.8\widgets\itemviews\build-addressbook-Desktop_Qt_5_8_0_MSVC2015_32bit-Debug\debug\addressbook.exe crashed.

我之前在使用 Qt5.6.2 和 MSVC 2013 时没有看到这种错误。我还尝试了以下操作:

  • 使用离线安装程序重新安装 Qt5.8.0 MSVC 2015
  • 使用离线安装程序重新安装 Qt5.7.1 MSVC 2015
  • 使用离线安装程序重新安装 Qt5.6.2 MSVC 2015
  • 使用在线安装程序重新安装Qt5.8.0,其中我选择了MSVC 2013和MSVC 2015

我仍然不断收到相同的错误消息。

当我进入调试文件夹时,双击 exe 文件,它说缺少一些 Qt dll。然后我手动复制到debug文件夹,然后exe就可以正常运行了。

现在我想从 Qt Creator 中运行应用程序,但不确定 Qt Creator 4.2.1 有什么问题。我在谷歌研究了几个小时,但仍然无法找出 Qt Creator 即使是自己的示例项目也无法运行项目的原因。 (我自己的项目也有同样的错误)

我觉得这一定与 Qt creator 环境/设置有关。有人对这个问题有任何想法吗?

更新 1:

我尝试将 MinGW 与 Qt Creator 一起使用,地址簿示例可以正常运行。看起来它与 MSVC 2015 有关。我需要 MSVC 2015,因为所有其他环境都不支持 webenginewidgets,我得到了:

:-1: error: Unknown module(s) in QT: webenginewidgets

不确定这是 Qt 还是 Qt creator 中的错误。

更新 2:

在我的 Qt Creator 中,我看到了 MSVC 2013 和 MSVC 2015 编译器的警告图标,请看下面的截图:

【问题讨论】:

  • 我会清理、编译、构建,然后如果你在 main 的第一行代码处设置断点,它会命中吗?
  • 奇怪的是,默认情况下没有为 Qt Creator 配置调试器。我正在调查是否可以使用 MinGW 的调试器。

标签: qt qt-creator qt5.8


【解决方案1】:

我终于解决了这个问题。原因是Windows 10 SDK 不见了。

在我下载并安装了Windows 10 SDK 的所有默认组件后,一切都在 Windows 7 32 位上运行。

基本上,为了确保我们可以在 Windows 上使用 Qt5.8.0+(包括 Qt WebEngine),我们需要同时安装这两个:

【讨论】:

    【解决方案2】:

    我迟到了,但我发现罪魁祸首是“ucrtbased.dll”。

    我没有安装 Windows 10 SDK。

    我在 Windows 7 SP1 x64、Qt 5.9.2 上安装了 Visual Studio Build Tools 2015 (v14.0.25420.1) 和安装了 MS 调试器工具 (CDB) 的 Windows 8.1 SDK。发布配置构建没有任何问题,但调试配置表现出相同的崩溃行为。 修复很简单。 使用 Win8.1 SDK 正常安装 Visual Studio Build Tools 2015 会将“ucrtbased.dll”放在“C:\Program Files (x86)\ 64 位版本的 Windows Kits\10\bin\x64\ucrt" 和 32 位版本的 "..\x86\ucrt" - 甚至没有安装 Windows 10 SDK。如果这些包含在系统路径中,或者复制到 Qt 的当前项目构建文件夹中,问题就解决了。

    【讨论】:

    • 感谢分享,再次看到类似问题会尝试。我最近也升级到了 5.9.x。
    • 天啊,这把我逼疯了!应用程序可以在发布模式下工作,但不能在调试模式下工作。将 ucrtbased.dll 添加到 PATH 解决了这个问题。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-14
    • 1970-01-01
    • 2019-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多