无法 运行 Qt creator 中的 Qt 示例:程序意外结束

Cannot run Qt example in Qt creator: The program has unexpectedly finished

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

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

我安装Qt 5.8.0 MSVC 2015版后,Qt Creator 4.2.1就可以启动了。在欢迎页面中,我选择了名为:"Address Book Example" 的示例。然后点击"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.

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

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

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

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

感觉一定和Qt creator有关environment/settings。有人对这个问题有什么想法吗?

更新 1:

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

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

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

更新二:

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

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

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

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

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

我没有安装Windows10 SDK。

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