无法 运行 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时没有看到这种错误。我还尝试了以下操作:
- 使用离线安装程序重新安装 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 有什么问题。我在 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的当前项目构建文件夹,问题就简单解决了。
最近我尝试将 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时没有看到这种错误。我还尝试了以下操作:
- 使用离线安装程序重新安装 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 有什么问题。我在 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的当前项目构建文件夹,问题就简单解决了。