Подтвердить что ты не робот

Приложение, развернутое с библиотеками QT5, не запускается в Windows 7

Недавно мы перенесли наше приложение на основе QT в Windows с QT 4.8 до QT 5, и у нас возникла проблема с развертыванием. Обратите внимание, что наше приложение не изменилось, мы только построили его с новой картой QT5. С некоторыми усилиями мы получили его для сборки с библиотекой QT5 на основе VS2010; и я успешно запускаю приложение от Qt Creator.

Как и в случае с QT4, мы включили требуемый набор библиотек QT с установщиком.

На нашем этапе тестирования, когда мы установили наше приложение QT5 на чистой машине; это не началось бы. Не только приложение не запустилось, но оно не выдало никаких ошибок.

Мы запустили приложение через проверку зависимостей; и вообще не было недостающих библиотечных зависимостей.

4b9b3361

Ответ 1

После нескольких дней поиска без какого-либо прогресса мы наткнулись на ошибку QT:

https://bugreports.qt.io/browse/QTBUG-28766

В QT5 помимо ожидаемых QT-библиотек, msvcr100.dll и msvcp100.dll; оказывается, что вы должны отправить свое приложение с помощью:

platforms/qminimal.dll
platforms/qwindows.dll

. Что находится в вашей локальной библиотеке QT5, установите @:\Qt5.0.0\5.0.0\msvc2010\plugins\platform Я искал везде, и я не смог найти эту информацию в своей документации.

Ответ 2

Мне нужно запустить автономное приложение "Hello World" (Qt sdk 5.0.1 mingw, Win7 x64). Мне нужно добавить следующие файлы в программу dir:

  • платформы /qwindows.dll
  • D3DCompiler_43.dll
  • icudt49.dll
  • icuin49.dll
  • icuuc49.dll
  • libEGL.dll
  • libgcc_s_sjlj-1.dll
  • libGLESv2.dll
  • libstdС++ - 6.dll
  • libwinpthread-1.dll
  • Qt5Core.dll
  • Qt5Gui.dll
  • Qt5Widgets.dll

Полная информация о развертывании для окон, доступных в qt 5.5 doc

Ответ 3

Лучшим выбором является использование: windeployqt.exe. Этот инструмент разрешает все зависимости вашего приложения .exe.

Ответ 4

Да, хорошо видно. У меня были проблемы с развертыванием, используя qt 5.0.2.

Аналогично установленной папке платформ с этими двумя DLL в приложениях папке, а развертывания на Vista и Win7 теперь работают.

Подходчик не помогает здесь, поскольку он не уведомлять qwindows.dll или qminimal.dll как необходимые DLL.

Платформы dll в моей установке Qt находятся в \ Qt\5.0.2\mingw47_32\Plugins\платформы.

Ответ 5

Плагины платформы Qt находятся в папке "plugins" в "qtbase":   C:\Qt\5.0.0\qtbase\Plugins\платформы

Ответ 6

для учебника ноты, на win7 и qt5.1.1

шаги развертывания:

* change build mode to release, not debug,
* build,
* create a output folder somewhere
    e.g. desktop/notepad/
* 
* copy file to output folder
    file list:
    * from "workspace_home/build-notepad-xxx-Release/release"
        * notepad.exe
    * from "qt_home/5.1.1/msvc2010/bin"
        * icudt51.dll
        * icuin51.dll
        * icuuc51.dll
        * libEGL.dll
        * libGLESv2.dll
        * Qt5Core.dll
        * Qt5Gui.dll
        * Qt5Widgets.dll
        * 
    * from "qt_home/5.1.1/msvc2010/plugins/platforms"
        * platforms/ (need to create this sub folder in the output folder)
            * qwindows.dll
        * 
    * 
* 
* run the .exe file, make sure it works,
* 
* ok
* 

Ответ 7

Похоже, что пустой qt.conf, расположенный в том же каталоге, что и приложение, вызывает проблемы с запуском приложения Qt5 в Windows 7. Попробуйте удалить его.

Ответ 8

Я использовал экземпляр QMediaPlayer и QMediaPlaylist, и мое приложение больше не запускалось, что приводило к следующей ошибке: это приложение не запускалось, потому что оно не могло найти или загрузить плагин платформы Qt "windows". Повторная установка приложения может решить эту проблему.

Проведя 4 дня, пытаясь выяснить, что происходит, мы обнаружили, что в Qt5Core.dll имеется жесткий путь для загрузки плагинов, в частности файла wmfengine.dll. Убедитесь, что вы компилируете Qt5Core, чтобы не иметь этот жесткий путь (:\Qt\5.5\msvc2010).

screenshot of WinDiff

Жестко закодированный путь в Qt5Core.dll с ошибкой плагина wmfengine.dll для загрузки