#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 МБ).
Комментариев нет:
Отправить комментарий