Spec-Zone.ru › Qt 6.1

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

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

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

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

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

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

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

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

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

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

Каталоги исходного кода, сборки и установки

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

Рекомендуется разделять эти каталоги с помощью 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, а также пример Notepad:

~/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, в качестве параметра configure используйте -skip qtwayland.

~/qt-source/configure -skip qtwayland

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

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

Например, вы можете использовать опцию configure -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.

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

Опция configure -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.1/configure-options.html

Spec-Zone.ru

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