CQtDeployer/ru
CQtDeployer (произносится «си-къют-деплоер») — кроссплатформенная утилита развертывания C++ Qt или QML приложений.
Использование cqtdeployer может значительно упростить развертывание C++ Qt или QML проектов.
Важно
Данная утилита не является официальной разработкой qt и поддерживается силами сообщества.
Основные отличия этой программы:
- Производительность - эта программа развертывает приложение до 10 секунд.
- Гибкость - это приложение имеет флаги, которые помогут вам настроить деплоинг под ваши нужды и нужды вашего проекта
- Crossdeploy: приложение поддерживает Windows и дистрибутивы Linux, это означает, что вы можете использовать его не только для развертывания проекта для вашей платформы, но и для развертывания проекта в Linux для Windows и наоборот.
Принцип работы CQtDeployer
Утилите передаются пути к исполняемым файлам разворачиваемых программ при помощи флага -bin. Переданные программы анализируются и рекурсивно извлекается список зависимостей. Если развертываемые программы зависит от Qt, то исходя из зависимостей формируется список модулей. В зависимости от используемых модулей qt, развертываются плагины qt. Затем копируются qml плагины если такие требуются и стандартные переводы qt. После выполнения всех описанных шагов формируются скрипты для запуска приложения.
Пример использования
Linux:
cqtdeployer -bin myApp -qmake /media/D/Qt/5.12.5/gcc_64/bin/qmake -qmlDir ./
Windows:
cqtdeployer -bin myApp.exe -qmake /media/D/Qt/5.12.5/gcc_64/bin/qmake.exe -qmlDir ./
Где:
- cqtdeployer - это вызов утилиты. (до версии 1.4 в Windows использовалась команда %cqtdeployer%)
- -bin - флаг для передачи путей исполняемых файлов приложения.
- myApp.exe и myApp - сам путь к исполняемому файлу приложения
- -qmake - флаг для передачи путей к qmake для развертывания qt.
- -qmlDir - флаг для передачи путей к qml файлам приложения.
Snap версия
CQtDeployer для Linux платформ распространяется в 2х видах:
Версия для Snap работает в изолированном контейнере, из-за этого утилита не имеет доступа к системным файлам и библиотекам (/lib/, /usr/lib/), что ведет к не корректной работе флагов deploySystem и deploySystem-with-libc.