Параметры конфигурации 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. Удалите этот файл, если хотите начать работу заново без кэшированной информации.
Исходные, сборка и установка каталоги
Каталог source содержит исходный код, полученный из исходного пакета или репозитория git. Каталог build содержит файлы, связанные со сборкой, такие как файлы системы сборки, объектные файлы и другие промежуточные файлы. Каталог install — это место, где устанавливаются двоичные файлы и библиотеки, для использования либо системой, либо приложением.
Рекомендуется хранить эти каталоги раздельно, используя shadow-сборку и параметр -prefix. Это позволяет сохранить дерево исходных кодов Qt чистым от артефактов сборки и двоичных файлов, которые хранятся в отдельном каталоге. Этот метод очень удобен, если вы хотите иметь несколько сборок из одного дерева исходных кодов, но для разных конфигураций. Чтобы использовать shadow-сборку, запустите 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 и плагин интеграции 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 для этой цели (параметр конфигурации -schannel). На macOS и iOS Qt можно настроить для использования API SecureTransport (параметр конфигурации -securetransport).
Наиболее полная поддержка, которая также работает практически на всех целевых платформах, предоставляется пакетом OpenSSL Toolkit (параметр -openssl).
Qt можно настроить для использования OpenSSL тремя способами:
- Qt Network загружает библиотеки OpenSSL (DLL) при первой необходимости, во время выполнения. Если их не найти, приложение продолжает работать, но не может обработать SSL-связь. Это активируется с помощью параметра конфигурации -openssl-runtime.
- Qt Network связывается с библиотеками OpenSSL. Если их не удаётся найти во время загрузки, приложение не запускается. Это активируется с помощью параметра конфигурации -openssl-linked.
- Qt Network компилируется с использованием статической версии библиотек OpenSSL, и OpenSSL становится частью библиотеки Qt Network. Это активируется с помощью параметра конфигурации openssl-linked и установки переменной OPENSSL_USE_STATIC_LIBS в значение ON.
Установите переменную CMake OPENSSL_ROOTDIR, если 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 страница Wiki
- Qt для iOS — Сборка из исходного кода
- Настройка встраиваемого устройства Linux
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/configure-options.html