Qt Настройки конфигурации
configure — это инструмент командной строки, который определяет, как создать Qt для конкретной платформы. Configure может исключить функцию в Qt, а также определить, как Qt создаёт и развёртывает приложения на целевых платформах. На этой странице обсуждаются некоторые параметры конфигурации, но для полного списка параметров введите команду configure -h. Configure следует запускать из основного каталога исходных кодов Qt.
Если не указано иное, команды на этой странице предназначены для платформ Linux. На macOS и Windows PATH и структура каталогов отличаются, поэтому команды будут различаться. Кроме того, в системах Windows скрипт конфигурации называется configure.bat.
После выполнения configure, постройте исходные файлы с помощью инструмента make, принадлежащего выбранной инструментальной цепочке.
Каталоги исходного кода, сборки и установки
Каталог source содержит исходный код, полученный из исходного пакета или репозитория Git. Каталог build — это место хранения файлов, связанных со сборкой, таких как Makefiles, файлы объектов и другие промежуточные файлы. Каталог install — это место, куда устанавливаются двоичные файлы и библиотеки для использования системой или приложением.
Рекомендуется разделять эти каталоги, используя shadow-сборку и параметр -prefix. Это позволяет сохранить дерево исходных кодов Qt чистым от артефактов сборки и двоичных файлов, которые хранятся в отдельном каталоге. Этот метод очень удобен, если вы хотите иметь несколько сборок из одного дерева исходных кодов, но для разных конфигураций. Для shadow-сборки запустите configure из отдельного каталога:
mkdir ~/qt-build cd ~/qt-build ~/qt-source/configure -prefix /opt/Qt5.9 qmake
Конфигурация с параметром -prefix означает, что двоичные файлы и библиотеки Qt устанавливаются в другой каталог, который в этом случае является /opt/Qt5.9. Выполнение qmake генерирует Makefiles в каталоге ~/qt-build, а не в каталоге source. После создания Makefiles выполните следующие команды, чтобы собрать двоичные файлы и библиотеки Qt и установить их:
make make install
Модули и функции
Qt состоит из различных модулей, исходные коды которых находятся в разных каталогах внутри каталога исходных кодов верхнего уровня. Пользователи могут явно исключить определённые каталоги верхнего уровня, чтобы сократить время сборки. Кроме того, каждый модуль Qt может иметь функции, которые также можно явно включить или выключить.
Исключение модулей Qt
Параметр -skip configure позволяет исключить каталоги исходных кодов верхнего уровня из сборки Qt. Обратите внимание, что многие каталоги содержат несколько модулей Qt. Например, чтобы исключить Qt NFC и Qt Bluetooth из сборки Qt, передайте -skip qtconnectivity в качестве аргумента configure.
./configure -skip qtconnectivity
Включение или отключение функций
Параметры -feature-<feature> и -no-feature-<feature> включают и отключают определённые функции соответственно.
Например, чтобы отключить доступность, передайте -no-feature-accessibility в качестве аргумента:
./configure -no-feature-accessibility
Используйте configure -list-features для отображения списка всех доступных функций в командной строке. Обратите внимание, что функции могут зависеть от других функций, поэтому отключение одной функции может иметь побочные эффекты на другие функции.
Инструмент конфигурации Qt, который входит в состав Qt для создания устройств, позволяет настраивать функции и зависимости через удобный пользовательский интерфейс.
Библиотеки сторонних производителей
Пакеты исходных кодов Qt включают библиотеки сторонних производителей. Чтобы установить, использовать ли Qt системные версии библиотек или собственные, передайте -system или -qt перед именем библиотеки в конфигурации.
В таблице ниже обобщены параметры сторонних производителей:
| Имя библиотеки | Включён в Qt | Установлен в системе |
|---|---|---|
| zlib | -qt-zlib |
-system-zlib |
| libjpeg | -qt-libjpeg |
-system-libjpeg |
| libpng | -qt-libpng |
-system-libpng |
| xcb | -qt-xcb |
-system-xcb |
| freetype | -qt-freetype |
-system-freetype |
| PCRE | -qt-pcre |
-system-pcre |
| HarfBuzz-NG | -qt-harfbuzz |
-system-harfbuzz |
Также можно отключить поддержку этих библиотек, используя -no вместо -qt Например, чтобы использовать системную библиотеку xcb и отключить поддержку zlib, введите следующее:
./configure -no-zlib -qt-libjpeg -qt-libpng -system-xcb
Для получения полного списка параметров обратитесь к справке по configure -help.
Параметры компилятора
Параметр -platform задаёт целевую платформу и компилятор для сборки исходных кодов Qt. Список поддерживаемых платформ и компиляторов находится на странице поддерживаемых платформ, а полный список доступен в каталоге qtbase/mkspecs.
Например, в системах Ubuntu Linux Qt можно скомпилировать с помощью нескольких компиляторов, таких как clang или g++:
./configure -platform linux-clang ./configure -platform linux-g++ ./configure -platform linux-g++-32
Для компьютеров Windows можно использовать инструментальные цепочки MinGW или Visual Studio для компиляции Qt.
configure.bat -platform win32-g++ configure.bat -platform win32-msvc
После этого сгенерированные Makefiles будут использовать соответствующие команды компилятора.
Параметры кросс-компиляции
Чтобы настроить Qt для кросс-платформенного разработки и развертывания, необходимо настроить инструментальную цепочку разработки для целевой платформы. Эта настройка зависит от поддерживаемых платформ.
Общие параметры:
-
-xplatform— целевая платформа. Допустимые параметры xplatform совпадают с параметрами-platform, которые находятся в qtbase/mkspecs. -
-device— определённое устройство или наборы микросхем. Список устройств, с которыми совместима конфигурация, находится в qtbase/mkspecs/devices. Дополнительную информацию можно найти на странице Вики Устройства. -
-device-option— задаёт дополнительные переменные qmake. Например,-device-option CROSS_COMPILE=<path-to-toolchain> предоставляет переменную средыCROSS_COMPILE, необходимую для определённых устройств.
Примечание: Инструментальные цепочки для платформ, не являющихся настольными, часто поставляются с так называемым sysroot, против которого необходимо настроить Qt.
Конкретные параметры для платформ
На следующих страницах приведены рекомендации по настройке Qt для разработки на конкретных платформах:
- Страница Wiki «Сборка Qt 5 для Android»
- Qt для iOS — Сборка из исходного кода
- Qt для UWP — Сборка из исходного кода
- Настройка встроенного устройства Linux
- Qt для Raspberry Pi — сайт сообщества для устройств Raspberry
- Устройства — список других устройств и наборов микросхем
Параметры OpenGL для Windows
В Windows Qt можно настроить с использованием системного OpenGL или ANGLE. По умолчанию Qt настроен для использования динамического OpenGL. Это означает, что он пытается использовать системный OpenGL и переходит к ANGLE, который включён в Qt и зависит от DirectX SDK, если системный OpenGL не работает. ANGLE позволяет запускать приложения Qt, которые зависят от OpenGL, без установки последних драйверов OpenGL. Если и ANGLE не работает, Qt перейдёт к рендерингу в программном обеспечении, который является самым медленным, но наиболее безопасным методом рендеринга.
Параметр -opengl можно использовать для настройки Qt на использование OpenGL на целевой системе, другую версию OpenGL ES (с ANGLE или без него) или динамический переход между доступными реализациями OpenGL.
configure.bat -opengl dynamic
С параметром dynamic Qt сначала попытается использовать системный OpenGL. Если это не удастся, он перейдёт к ANGLE, а затем — к программному рендерингу в случае, если и ANGLE не сработает.
configure.bat -opengl desktop
С параметром desktop Qt использует OpenGL, установленный в Windows, требуя, чтобы OpenGL на целевом компьютере Windows был совместим с приложением. Параметр -opengl принимает две версии OpenGL ES, es2 для OpenGL ES 2.0 или es1 для OpenGL ES Common Profile.
configure.bat -opengl es2
Также можно использовать -opengl dynamic, что позволит приложениям динамически переключаться между доступными вариантами во время выполнения. Более подробную информацию о преимуществах использования динамического переключения GL см. в Драйверах графических устройств.
Сборки для разработчиков
Параметр -developer-build не предназначен для выпуска приложений, но может быть использован для разработки Qt. Такая сборка содержит больше экспортированных символов, чем стандартная сборка, и компилируется с более высоким уровнем предупреждений.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/configure-options.html