Поиск…


Развертывание на окнах

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= ), имя приложения и значок.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow