Qt
Развертывание приложений Qt
Поиск…
Развертывание на окнах
Qt предоставляет инструмент развертывания для Windows: windeployqt
. Инструмент проверяет исполняемый файл приложения Qt для своих зависимостей с модулями Qt и создает каталог развертывания с необходимыми Qt-файлами для запуска проверенного исполняемого файла. Возможный сценарий может выглядеть так:
set PATH=%PATH%;<qt_install_prefix>/bin
windeployqt --dir /path/to/deployment/dir /path/to/qt/application.exe
Команда set
вызывается для добавления каталога bin
Qt в PATH
среды PATH
. windeployqt
затем вызывается:
- Путь к каталогу развертывания предоставляется необязательный аргумент, заданный параметром
--dir
(по умолчанию это путь, гдеwindeployqt
). - В качестве последнего аргумента приводится путь к проверяемому исполняемому файлу.
Затем каталог развертывания можно связать с исполняемым файлом.
НОТА:
Если вы используете предварительно скомпилированный Qt5.7.0 с vs2013 в Windows (не уверен, что все версии имеют эту проблему) , есть вероятность, что вам нужно вручную скопировать <QTDIR>\5.7\msvc2015\qml
в каталог bin вашей программы. В противном случае программа автоматически завершит работу после запуска.
См. Также документацию Qt .
Интеграция с CMake
Можно запустить windeployqt
и macdeployqt
из CMake, но сначала должен быть найден путь к исполняемым macdeployqt
:
# Retrieve the absolute path to qmake and then use that path to find
# the binaries
get_target_property(_qmake_executable Qt5::qmake IMPORTED_LOCATION)
get_filename_component(_qt_bin_dir "${_qmake_executable}" DIRECTORY)
find_program(WINDEPLOYQT_EXECUTABLE windeployqt HINTS "${_qt_bin_dir}")
find_program(MACDEPLOYQT_EXECUTABLE macdeployqt HINTS "${_qt_bin_dir}")
Чтобы windeployqt
обнаружил библиотеки Qt в установленном местоположении, папка должна быть добавлена в %PATH%
. Чтобы сделать это для цели с именем myapp
после создания:
add_custom_command(TARGET myapp POST_BUILD
COMMAND "${CMAKE_COMMAND}" -E
env PATH="${_qt_bin_dir}" "${WINDEPLOYQT_EXECUTABLE}"
"$<TARGET_FILE:myapp>"
COMMENT "Running windeployqt..."
)
Для запуска macdeployqt
в комплекте, это будет сделано следующим образом:
add_custom_command(TARGET myapp POST_BUILD
COMMAND "${MACDEPLOYQT_EXECUTABLE}"
"$<TARGET_FILE_DIR:myapp>/../.."
-always-overwrite
COMMENT "Running macdeployqt..."
)
Развертывание на Mac
Qt предлагает инструмент развертывания для Mac: средство развертывания Mac.
Средство развертывания Mac можно найти в QTDIR/bin/macdeployqt
. Он предназначен для автоматизации процесса создания развертываемого пакета приложений, который содержит библиотеки Qt в виде частных фреймворков.
Средство развертывания Mac также развертывает плагины Qt в соответствии со следующими правилами (если не используется опция -no-plugins ):
- Плагин платформы всегда развертывается.
- Отладочные версии плагинов не развернуты.
- Плагины дизайнера не развертываются.
- Плагины формата изображения всегда развернуты.
- Плагин поддержки печати всегда развертывается.
- Плагины драйверов SQL развертываются, если приложение использует модуль Qt SQL.
- Плагины сценариев развертываются, если приложение использует модуль Qt Script.
- Плагин значка SVG развертывается, если приложение использует модуль Qt SVG.
- Плагин доступности всегда развернут.
Чтобы включить стороннюю библиотеку в пакет приложений, скопируйте библиотеку в пакет вручную, после создания пакета.
Чтобы использовать инструмент macdeployqt
, вы можете открыть терминал и ввести:
$ QTDIR/bin/macdeployqt <path to app file generated by build>/appFile.app
Файл приложения теперь будет содержать все библиотеки Qt, используемые в качестве частных фреймворков.
macdeployqt
также поддерживает следующие параметры
вариант | Описание |
---|---|
-verbose = <0-3> | 0 = нет выхода, 1 = ошибка / предупреждение (по умолчанию), 2 = нормальный, 3 = отладка |
-no-плагинов | Пропустить развертывание плагинов |
-dmg | Создайте образ диска .dmg |
-по-полоска | Не запускайте 'strip' в двоичных файлах |
-use-отладочные-LIBS | Развертывание с помощью отладочных версий фреймворков и плагинов (подразумевает -no-strip) |
-executable = | Пусть данный исполняемый файл также использует развернутые фреймворки |
-qmldir = | Развертывание импорта, используемого файлами .qml в указанном пути |
Подробную информацию можно получить на Qt Documentation
Развертывание на Linux
Существует инструмент развертывания для Linux на GitHub . Хотя это и не идеально, оно связано с вики Qt. Он основан концептуально на инструменте развертывания Qt Mac и работает аналогично, предоставляя AppImage .
Учитывая, что файл рабочего стола должен быть снабжен AppImage, linuxdeployqt
может использовать его для определения параметров сборки.
linuxdeployqt ./path/to/appdir/usr/share/application_name.desktop
Если файл рабочего стола указывает исполняемый файл, который должен быть запущен (с EXEC=
), имя приложения и значок.