Spec-Zone.ru › Qt

Параметры конфигурации Qt

configure — это инструмент командной строки, который помогает вам создать собственную версию Qt из исходного кода. Он находится в основной директории исходного кода Qt.

Начиная с Qt 6, configure является оболочкой вокруг cmake. CMake также может быть вызван напрямую. configure обеспечивает дополнительную проверку ошибок и совместимость с Qt 5.

На этой странице рассматриваются некоторые из параметров configure. Полный список параметров можно получить, выполнив команду configure -h.

Примечание: Если не указано иное, команды на этой странице предназначены для платформ Linux. На macOS и Windows пути и структура каталогов отличаются, поэтому команды будут различаться. Также на системах Windows скрипт configure называется configure.bat.

Процесс конфигурации

configure необходимо вызывать в рабочей среде сборки, где cmake, компиляторы и необходимые инструменты сборки доступны. Сборка исходного кода Qt содержит список таких зависимостей для каждой платформы.

После настройки такой среды типичный процесс конфигурации включает создание отдельной директории сборки, а затем последовательное выполнение команд configure, сборки Qt и установки Qt:

~/qt-source/configure
cmake --build . --parallel
cmake --install .

Возможно, вам захочется поэкспериментировать с различными флагами configure, поэтому вы можете запустить configure несколько раз. Обратите внимание, что CMake кэширует параметры configure и информацию об окружении в файле CMakeCache.txt. Удалите этот файл, если хотите начать заново без кэшированной информации.

Директории исходного кода, сборки и установки

Директория source содержит исходный код, полученный из исходного пакета или репозитория Git. Директория build предназначена для хранения файлов, связанных со сборкой, таких как файлы системы сборки, объектные файлы и другие промежуточные файлы. Директория install используется для установки библиотек и исполняемых файлов, которые могут быть использованы системой или приложением.

Рекомендуется хранить эти директории раздельно, используя shadow-building и опцию -prefix. Это позволит сохранить исходное дерево Qt чистым от артефактов сборки и бинарных файлов, которые хранятся в отдельной директории. Этот метод очень удобен, если вам нужно выполнить несколько сборок из одного исходного дерева, но для разных конфигураций. Для shadow-building запустите configure из отдельной директории:

mkdir ~/qt-build
cd ~/qt-build
~/qt-source/configure -prefix /opt/Qt6

Конфигурация с опцией -prefix означает, что Qt исполняемые файлы и библиотеки будут установлены в другую директорию, в данном случае /opt/Qt6.

Примеры, тесты и инструменты

По умолчанию configure конфигурирует только библиотеки и инструменты Qt. Вы можете использовать -make examples или -make tests, чтобы также скомпилировать примеры или тесты, поставляемые с Qt:

~/qt-source/configure -make examples -make tests

Вы также можете настроить Qt таким образом, чтобы примеры, тесты и инструменты были сконфигурированы, но по умолчанию не строились. Если вы установите переменные CMake QT_BUILD_EXAMPLES_BY_DEFAULT, QT_BUILD_TESTS_BY_DEFAULT и QT_BUILD_TOOLS_BY_DEFAULT в значение OFF, соответствующие части не будут построены с помощью "cmake --build .". Вместо этого CMake сгенерирует отдельные цели, которые вы сможете скомпилировать индивидуально.

Здесь мы собираем библиотеки и инструменты Qt, а также пример блокнота:

~/qt-source/configure -make examples -- -D QT_NO_MAKE_EXAMPLES=ON
cmake --build . --parallel
cmake --build . --parallel --target notepad

Примечание: Опция -developer-build по умолчанию собирает тесты. См. также Разработчик сборки ниже.

Конфигурации сборки

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

Отладочная и релизная сборки

-release сообщает компилятору оптимизировать код и не включать дополнительные символы отладки вместе с Qt и его инструментами.

-debug отключает некоторые оптимизации, чтобы облегчить отладку Qt и его инструментов. Эта опция также включает создание символов отладки, которые позволяют вам просматривать код и состояние собранных библиотек в отладчике.

Наконец, -debug-and-release позволяет вам собрать как отладочную, так и релизную версии библиотек Qt за один раз. Эта опция поддерживается только при конфигурировании сборки для Windows.

Существуют дополнительные опции для настройки конфигураций:

  • -force-debug-info: Создает релизную сборку с информацией об отладке.
  • -separate-debug-info: Извлекает информацию об отладке в отдельный файл.
  • -optimize-size: Оптимизирует релизные сборки для размера вместо скорости.

Статические и динамические сборки

Модули Qt могут быть собраны как отдельные библиотеки, к которым исполняемый файл обращается и загружает при запуске (для библиотек Qt) или во время выполнения (для плагинов Qt). Это называется динамической сборкой и является стандартной конфигурацией на большинстве платформ. Соответствующая опция configure — -dynamic.

Вы также можете собрать Qt таким образом, чтобы исполняемый файл включал все модули Qt, к которым он обращается, и все плагины Qt, которые ему необходимы. Это называется статической сборкой и может быть выбрано при конфигурации с опцией -static.

Генераторы CMake

При конфигурации вы можете выбрать генератор CMake. Обратите внимание, что CMake поддерживает генераторы, которые нельзя использовать с Qt. Поэтому configure автоматически выбирает для вас генератор.

configure всегда использует генератор Ninja и инструмент сборки, если доступен исполняемый файл ninja. Ninja является кроссплатформенным, функционально богатым и производительным инструментом, рекомендуемым на всех платформах. Использование других генераторов может работать, но не является официально поддерживаемым.

Модули и функции

Qt состоит из различных модулей, исходные коды которых находятся в различных директориях в директории исходного кода верхнего уровня. Пользователи могут явно исключить определенные директории верхнего уровня, чтобы сократить время сборки. Кроме того, каждый модуль Qt может иметь функции, которые также можно явно включить или выключить.

Исключение модулей Qt

Опция -skip configure позволяет исключить директории исходного кода верхнего уровня из сборки Qt. Обратите внимание, что некоторые директории содержат несколько модулей Qt. Например, чтобы исключить модуль Qt Wayland Compositor и плагин интеграции Qt Wayland из сборки Qt, используйте -skip qtwayland в качестве опции configure.

~/qt-source/configure -skip qtwayland

Включение или исключение функций

Опции -feature-<feature> и -no-feature-<feature> включают и исключают определенные функции соответственно.

Например, вы можете использовать опцию конфигурации -no-feature-accessibility для отключения поддержки Доступности в Qt:

~/qt-source/configure -no-feature-accessibility

Используйте configure -list-features, чтобы отобразить список всех доступных функций в командной строке. Обратите внимание, что функции могут зависеть от других функций, поэтому отключение одной функции может иметь побочные эффекты на другие функции.

Библиотеки сторонних разработчиков

Пакеты исходного кода Qt включают библиотеки сторонних разработчиков. Чтобы указать, должны ли Qt использовать системные версии библиотек или собственные, передайте -system или -qt перед именем библиотеки для конфигурации.

В таблице ниже приведены некоторые параметры сторонних библиотек:

Имя библиотеки Включена в Qt Установлена в системе
zlib -qt-zlib -system-zlib
libjpeg -qt-libjpeg -system-libjpeg
libpng -qt-libpng -system-libpng
freetype -qt-freetype -system-freetype
PCRE -qt-pcre -system-pcre
HarfBuzz-NG -qt-harfbuzz -system-harfbuzz

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

configure в Qt 6 полагается на CMake для поиска библиотек сторонних разработчиков. Он делает это, проверяя различные системные пути. Если вы установили библиотеки в другом месте, вы можете сообщить CMake об этом, установив или расширив переменную CMAKE_PREFIX_PATH.

Для получения полного списка параметров обратитесь к справке с помощью configure -help.

SSL

Qt Network может быть настроен для поддержки связи по протоколу Secure Sockets Layer (SSL), но не реализует сами алгоритмы. Он должен использовать другие библиотеки.

В Windows Qt может использовать системную библиотеку Secure Channel для этой цели (опция configure -schannel). На macOS и iOS Qt может быть настроен для использования API SecureTransport (опция configure -securetransport).

Наиболее полная поддержка, которая также работает практически на всех целевых платформах, предоставляется пакетом OpenSSL Toolkit (опция -openssl).

Qt может быть настроен для использования OpenSSL тремя способами:

  • Qt Network загружает библиотеки OpenSSL (DLL) при первой необходимости во время выполнения. Если они не найдены, приложение продолжает работать, но не может обработать SSL-связь. Это включено с помощью опции configure -openssl-runtime.
  • Qt Network связывается с библиотеками OpenSSL. Если они не могут быть найдены во время загрузки, приложение не запускается. Это включено с помощью опции configure -openssl-linked.
  • Qt Network компилируется со статической версией библиотек OpenSSL, и OpenSSL становится частью библиотеки Qt Network. Это включено с помощью опции configure openssl-linked и установкой переменной OPENSSL_USE_STATIC_LIBS в значение ON.

Установите переменную CMake OPENSSL_ROOT_DIR, если OpenSSL не установлен в стандартном расположении и, следовательно, не найден configure.

См. Классы Secure Sockets Layer (SSL) для получения дополнительных инструкций по работе Qt с поддержкой SSL.

Опции кросс-компиляции

Для настройки Qt для разработки и развертывания на разных платформах сначала необходима соответствующая версия Qt для машины-хоста. Также необходимо настроить инструмент разработки для целевой платформы. Эта настройка варьируется в зависимости от Поддерживаемые платформы.

Общие опции:

  • -external-hostbindir — Путь к инструментам Qt, собранным для этой машины.
  • -device — Выбор устройств/mkspec для файлов qmake-компаньона.
  • -device-option — устанавливает дополнительные переменные qmake.

Примечание: Инструментарии для платформ, отличных от настольных компьютеров, часто поставляются с так называемым sysroot, к которому Qt необходимо настроить.

Сборки для разработчиков

Опция конфигурации -developer-build — это удобная опция, которая оптимизирует сборку для разработки самого Qt. Ее не следует использовать для сборки вариантов Qt, предназначенных для распространения клиентам.

Библиотеки в сборке для разработчика содержат больше экспортируемых символов, чем стандартная сборка, и весь код Qt компилируется с более высоким уровнем предупреждений. Также меняется префикс по умолчанию на директорию сборки, что позволяет избежать необходимости установки Qt перед тестированием, и, наконец, включает компиляцию автотестов Qt по умолчанию.

Указанные параметры для платформ

Следующие страницы содержат рекомендации по настройке Qt для разработки на конкретных платформах:

  • Стройка Qt для Android страница Вики
  • Qt для iOS — Сборка из исходного кода
  • Qt для Windows — Сборка из исходного кода
  • Настройка устройства встраиваемой системы Linux

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/configure-options.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API