Страницы

Поиск по вопросам

вторник, 25 февраля 2020 г.

Как развернуть приложение на Qt на другой Windows машине?

#windows #qt #cpp


Как правильно проинсталировать на другом компьютере программу с ОС Windows, написанную
на Qt C++? Проект в Qt Creator. Делаю релиз. Через запуск из Qt Creator проект запускается.
Если через проводник зайти и открыть приложение в папке release, то возникает ошибка:
отсутствует QtCore4.dll. Допустим, я PATH пропишу, на моем компьютере найдется, но
клиенту же не скажешь, прописывайте ручками библиотеки. Вот интересует вопрос именно
развертывания приложения под Windows.
Если есть статьи на эту тему, буду рад и такому ответу, с удовольствием почитаю.    


Ответы

Ответ 1



У вас есть два варианта: Поставлять вместе с программой все необходимые dll'ки Qt. В первую очередь Windows ищет библиотеки в папке с программой, поэтому достаточно будет положить их туда. Вариант достаточно громоздкий - совсем недавно я написал небольшое приложение на Qt Widgets (размер exe'шника около 700 КБ), которое потянуло за собой 60 МБ Qt'шных библиотек. Слинковать все необходимые библиотеки Qt с вашим приложением статически. То же приложение разрослось с 700 КБ до 10 МБ, однако сил и времени на статическую линковку ушло уйма (чего стоит только перекомпиляция Qt из исходников!).

Ответ 2



Статьи есть. Там в конце есть раздел The Windows Deployment Tool. Я им никогда не пользовался, попробуйте возможно годная штука. Обычно все библиотеки просто складываю рядом с исполняемым файлом. И конечно dependencywalker вам в помощь, хотя он не всё может определить.

Ответ 3



Я обращался с подобным вопросом к производителю. Ответ примерно такой: Купить лицензионную версию, котороая позволяет необходимую информацию (подчёркиваю, что не всё содержимое библиотек, а только необходимую информацию) поместить в *.exe - файл. Мои предложения: Свободно распространяемая версия Qt предполагает распространять и родных *.dll. Сделайте свой инсталятор и включите туда необходимые библиотеки (кстати, в сети такие уже есть). На одном из форумов встречал советы, как "переделать" Qt, чтобы он включал в *.exe содержимое библиотек. Это возможно, но, во-первых, это нарушает лицензию, и к Вам производитель может предъявить иск, а во вторых, размер исполняемого файла в этом случае становится больше на размер используемых библиотек (вместо, допустим, 500 КБ будет "весить" 40-50 МБ).

Комментариев нет:

Отправить комментарий