Развертывание приложения Qt С++ из Visual Studio qwindows.dll

Я искал решение для решения этой проблемы, и хотя я нашел много людей, разделяющих мою проблему, ни одно из их решений не работает для меня.

Я написал приложение С++ с использованием фреймворка Qt с помощью Visual Studio 2010. Я создал и запускал приложение в режиме "Release" из Visual Studio без проблем, но когда я копирую этот exe из папки Release в новое место назначения (притворяюсь, что он новый ПК), он не запускается с этой ошибкой:

---------------------------
TestApplication
---------------------------
This application failed to start because it could not find or load the Qt platform plugin "windows".

Available platform plugins are: windows.

Reinstalling the application may fix this problem.

В исполняемом каталоге у меня есть следующая файловая структура:
. /TestApplication.exe
. /libGLESv 2.dll
. /Qt 5Core.dll
. /Qt 5Gui.dll
. /QtWidgets.dll
. /platforms/qwindows.dll
. /qt.conf

Все файлы dll были взяты из сборки 5.0.0 Qt в папке Qtbase, где находятся библиотеки.

Файл qt.conf:

[Paths]
Plugins=.

Без него ошибка запуска одинакова, за исключением того, что он говорит, что "минимальный" и "внеэкранный" также доступны.

Для всех других людей, испытывающих эту ошибку, это, казалось, решалось путем создания папки platforms и установки qwindows.dll. Но само по себе это не меняет никакого поведения.

Есть ли что-то, что я сделал неправильно? Возможно, мой метод генерации .exe в первую очередь неверен?

Ответ 1

Если вы используете libGLESv2.dll, то вы должны также включить libEGL.dll. Вы не можете видеть это в файле depend.exe, не знаете, как разработчикам Qt удалось скрыть это. Если ваш Qt находится вне коробки, тогда обе библиотеки Dll необходимы, даже если вы не используете OpenGL.

Кроме того, если ваш Qt находится вне поля, вам нужно также включить три IC *.dll, которые содержат информацию для обработки Unicode.

Ответ 2

Вы можете увидеть, какие DLL нужны, посмотрев, какие из них вызывается при запуске Debug (F5) в Qt Creator. = Карл