2017-02-08 2 views
2

Недавно я попытался обновить Qt до 5.8.0 на Windows 7 32bit от Qt5.6.2 MSVC 2013, и я увидел странные проблемы.Не удается запустить Qt-пример в Qt-создателе: программа неожиданно закончила

Я скачал и установил Visual Studio 2015 по этой ссылке: https://www.visualstudio.com/downloads/

После установки Qt 5.8.0 MSVC 2015 версии, Qt Creator 4.2.1 может быть запущен. На странице приветствия я выбрал пример с именем «Пример адресной книги». Затем, после нажатия кнопки «Настроить», проект указан в 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 при помощи автономного установщика
  • Re установите Qt5.8.0 с помощью онлайн-установщика, в котором я выбрал MSVC 2013 и MSVC 2015

Я все еще получал одинаковые сообщения об ошибках.

Когда я пошел в папку отладки, дважды щелкнул файл exe, он сказал, что некоторые Qt dll отсутствовали. Затем я вручную скопировал в папку отладки, после чего exe можно запустить без проблем.

Теперь я хочу запустить приложение изнутри Qt Creator, но не уверен, в чем проблема с Qt Creator 4.2.1. Я исследовал в Google несколько часов, но до сих пор не могу понять, почему Qt Creator не может запускать проекты даже в собственных проектах примеров. (те же ошибки для моих собственных проектов)

Я чувствую, что это должно быть чем-то связанным с окружающей средой/настройками Qt. У кого-нибудь есть идеи по этой проблеме?

Update 1:

Я пытался использовать MinGW с Qt Creator, пример Addressbook может работать правильно. Похоже, что это связано с MSVC 2015. Мне нужно MSVC 2015, потому что все другие среды не поддерживают webenginewidgets, и я получил:

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

Не уверен, если это ошибка в Qt или Qt Creator.

Update 2:

В моей Qt Creator, я увидел предупреждение иконки для MSVC 2013 и MSVC 2015 составителей см скриншоты ниже: enter image description here enter image description here

+0

Я бы очистил, скомпилировал, построил, и если вы затем установили точку останова в своей первой строке кода в своем главном, это ударит? –

+0

Странно, что для Qt Creator по умолчанию не настроен отладчик. Я изучаю, могу ли я использовать отладчик MinGW. –

ответ

3

я, наконец, решить эту проблему. Причина в том, что Windows 10 SDK отсутствует.

После загрузки и установки всех компонентов по умолчанию Windows 10 SDK все работает на Windows 7 32bit.

В основном, чтобы убедиться, что мы можем использовать Qt5.8.0 + на Windows (в том числе Qt WebEngine), нам нужно установить как:

1

I Поздно, но я обнаружил, что основным виновником является «ucrtbased.dll».

Я не установил Windows 10 SDK.

Я на Windows 7 SP1 x64, Qt 5.9.2 с Visual Studio инструменты для сборки 2015 (v14.0.25420.1) и для Windows 8.1 SDK с MS Debugger Tools (CDB) установлен. В сборках конфигурации выпуска нет никаких проблем, но Конфигурация отладки демонстрирует одинаковое поведение при сбоях. Исправить это просто. Обычная установка Visual Studio Build Tools 2015 с Win8.1 SDK размещает «ucrtbased.dll« in »C: \ Program Files (x86) \ Windows Kits \ 10 \ bin \ x64 \ ucrt" для 64-разрядных и «.. \ x86 \ ucrt» для 32-битных построений - даже Windows 10 SDK не установлен. Если они включены в системный путь или скопированы в текущую папку сборки проекта Qt, проблема просто решена.

+0

Спасибо за совместное использование, попробую, когда я снова увижу похожие проблемы. Я также обновился до 5.9.x в последнее время. –

+0

OMG, это сводило меня с ума! Приложение будет работать в режиме Release, но не в режиме Debug. Добавление ucrtbased.dll в PATH решило проблему. Благодаря! –

Смежные вопросы