@Tar
Unity3D, C#, GameDev

Как c помощью Qt собрать статический exe под windows

Здравствуйте, пишу небольшую программу и столкнулся с проблемой — как под Qt собрать программу в один exe файл. Ну или какие DLL надо положить в дистрибутив, чтобы она работала на других компьютерах.

Локально она работает если в папке с EXE файлом присутствуют
icudt49.dll
icuin49.dll
icuuc49.dll
libEGL.dll
libGLESv2.dll
Qt5Core.dll
Qt5Gui.dll
Qt5Widgets.dll
Причём это всё надергано с форумов (без libEGL.dll она просто молча закрывается)

Однако на других компьютерах работать отказывается. Дебаг версия судя по всему требует vc-redist, но после установки последнего не работает всё равно.

Программа элементарная, пара окошек, никаких специальных библиотек не используется.

Как собрать exe со статической линковкой?
  • Вопрос задан
  • 13600 просмотров
Решения вопроса 1
Для статической линковки нужно сначала собрать сам Qt из исходников, сконфигурировав его с параметром -static. В ридми и на сайте проекта это достаточно внятно расписано. Но в этом случае могут вылезти проблемы с плагинами и QtQuick.

Если задача не обязательно собрать статически, а просто запустить на другом компе, то помимо прямых DLL-зависимостей необходимо рядом с EXE-файлом ещё создать подкаталог platforms и скопировать туда плагин qwindows.dll из каталога <Qt>\qtbase\plugins\platforms\. Если в программе используются ещё какие-то плагины, аналогично, нужно будет и их скопировать в соответствующие подкаталоги.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы