Развертывание приложений qt в Linux

Всем привет!

Решил поднять вопрос о развертывании приложений написанных с использованием qt в Linux подобных системах.

Данная проблема легко решается в системах под управлением windows и mac так как разработчики фреймворка подготовили для этого специальные утилитки (

windeployqt

и

macdeployqt

)

Под Linux к сожалению нет официальной утилиты. По этому я решил заняться этой проблемой и написать утилиту для развертывания qt приложения под Linux.

Теперь немного описания:

Console-QtDeployer

- это простая утилита аналогичная (

windeployqt

и

macdeployqt

) доступна

здесь

.

Данная утилита слинкована статически, а значит, все что вам нужно - это положить ее рядом со своим бинарником и вызвать ее, передав в качестве параметров путь к вашему приложению и путь к исходникам qt.

Давайте рассмотрим пример:

я написал простое qt приложение MyApp.

MyApp слинкована динамически - то есть для работы ему требуются библиотеки qt

CQtDeployer -bin MyApp -qmake ~/Qt/5.11.1/gcc_64/bin/qmake

После выполнения данной команды вы получите полностью готовое для работы приложение с готовым лаунчером который настроит все необходимое окружение для работы вашего приложения на всех машинах под управлением Linux.

Давайте подробнее рассмотрим некоторые из параметров CQtDeployer

help

- Показать справку

always-overwrite

- Копирует файлы с заменой уже существующих

-bin [params]

Исполняемый файл над которым будет выполнятся деплой

-qmlDir [params

] - Папка qml. пример -qmlDir ~/my/project/qml - папка с qml файлами вашего приложения, данная опция нужна для приложений использующих qml

deploy-not-qt

- Копировать все библиотеки

-qmake [params]

Путь к qmake. пример

clear

- удалит все старые файлы

-runScript [params]

- установить новое имя результирующего файла

пример -runScript myApp.sh

Вот и все Если есть какие то вопросы по использованию или проблемы то пишите мне буду рад помочь разобраться с ними.