Qt WinAPI - Урок 001. Как собрать все DLL, используемые в Qt-проекте?

РуководствоQtWinAPI, DLL, DLL Collector, DLLCollector, Qt2361

Рано или поздно перед любым Qt-разработчиком встаёт необходимость переноса своего приложения на другие компьютеры, и тогда возникает проблема наличия библиотек на целевом компьютере, которые необходимы для запуска и работы приложения. Особенно заметно это может быть при переносе приложения, которое должно исполняться под ОС Windows. Если под ОС Linux необходимые Qt библиотеки могут присутствовать по умолчанию, как например с Ubuntu, то под ОС Windows их может и вовсе не быть.

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

Как пишет Автор , утилита производит поиск зависимостей в runtime процесса. Следовательно Вашу программу необходимо запустить через данную утилиту. DLL Collector собирает информацию о всех подгружаемых Плагинах, используемых Вашей программой, но при этом не стоит забывать, что плагины подгружаются при первом использовании их функциями Вашей программы. Таким образом, необходимо сделать прогон Вашей программы по её функционалу, чтобы DLL Collector нашёл все библиотеки.

Как работает DLL Collector

Шаг первый. Настройка утилиты

На данном шаге необходимо произвести следующие действия:

  1. Указать в поле name путь к скомпилированной программе;
  2. Указать в поле bin путь к бинарным файлам библиотек Qt;
  3. Указать в поле plugins путь к  плагинам Qt;
  4. Указать путь к папке, куда будут скопированы DLL библиотеки
  5. Поставить галочку напротив add bin to envitonment

Шаг второй. Запуск Вашего приложения

После того, как настройка произведена, запускаем Ваше приложение нажатием кнопки Run.

Шаг третий. Обновление списка плагинов и библиотек

После того, как Ваше приложение запустилось, нажмите кнопку Update. Высветится список плагинов и библиотек. Также поработайте с Вашим приложением немного, чтобы DLL Collector наверняка обнаружил все зависимости и понажимайте кнопку Update несколько раз, чтобы убедиться, что все зависимости найдены.

Шаг четвертый. Копирование библиотек

После того, как библиотеки найдены, нажмите кнопку Copy, и все библиотеки будут скопированы.

Резюме

Подводя итоги, могу утверждать, что утилита весьма полезна и значительно облегчает жизнь.

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

Также Вы можете ознакомиться с программой на странице Автора.

Также не забудьте сделать инсталлятор для своего приложения, а как это делается узнайте в следующей статье .

Видеоурок

Реклама

Комментарии

Комментарии

Только авторизованные пользователи могут оставлять комментарии.
Пожалуйста, Авторизуйтесь или Зарегистрируйтесь
Последние комментарии
  • EVILEG
  • 24 апреля 2017 г. 20:44

Подключение вашего Qt приложения к сервисам Google, используя OAuth 2.0

У меня пока мыслей на этот счёт нет ((

Подключение вашего Qt приложения к сервисам Google, используя OAuth 2.0

Пробовал играться с шарком, либо я криво смотрел, либо почему-то POST запросы на oauth.yandex.ru не летят, хотя должны постом лететь, я и исходники QOAuth2AuthorizationCodeFlow ковырял на пред...

  • EVILEG
  • 24 апреля 2017 г. 13:39

Подключение вашего Qt приложения к сервисам Google, используя OAuth 2.0

Возможно, стоит Wireshark`ом запросы посмотреть. В чём отличие идёт аякс запроса от запроса из библиотеки. Возможно, что не хватает какой-нибудь заголовочной информации.

Сейчас обсуждают на форуме
  • Arrow
  • 1 мая 2017 г. 1:00

Callback функции

Первый раз пытаюсь работать с Callback функциями. Помогите понять, что и где я не так делаю. Вот код: ReverseString.h #ifndef REVERSESTRING_H#define REVERSESTRING_H#includ...

  • EVILEG
  • 30 апреля 2017 г. 10:22

QMenu

Вам не кажется, что вы увлеклись со скриншотами? Добавляйте голый программный код в сообщения через специальный диалог. Это кнопка с двумя фигурными скобками. Иногда требуется повторить код у ...

  • CJIaBiK
  • 29 апреля 2017 г. 21:07

QPushButton

Спасибо

  • CJIaBiK
  • 29 апреля 2017 г. 17:57

QWebEngineView

спасибо помогло

  • EVILEG
  • 29 апреля 2017 г. 17:47

Ошибка

Такое случается, когда добавляете новые файлы, а объектный файл, в данном случае mainwindow.obj, не пересобирается как положено. Приходится чистить сборку.