Опции конфигурации Qt
configure — это инструмент командной строки, который определяет, как следует скомпилировать Qt для конкретной платформы. Configure может исключить функцию в Qt, а также определить, как Qt собирает и развёртывает приложения на целевых платформах. На этой странице рассматриваются некоторые из опций конфигурации, но для получения полного списка введите команду configure -h. Инструмент Configure должен запускаться из основной директории исходного кода Qt.
Если не указано иное, команды на этой странице предназначены для платформ Linux. На macOS и Windows PATH и структура каталогов отличаются, поэтому команды будут различаться. Кроме того, на Windows системах скрипт конфигурации называется configure.bat.
После запуска configure, скомпилируйте исходные файлы с помощью инструмента make, относящегося к выбранному инструменту сборки.
Директории исходных кода, сборки и установки
Директория source содержит исходный код, полученный из исходного пакета или репозитория Git. Директория build — это место хранения файлов, связанных со сборкой, таких как Makefiles, объектные файлы и другие промежуточные файлы. Директория install — это место, куда устанавливаются двоичные файлы и библиотеки для использования либо системой, либо приложением.
Рекомендуется хранить эти директории раздельно, используя теневую сборку и опцию -prefix. Это позволяет сохранить дерево исходного кода Qt чистым от артефактов сборки и двоичных файлов, которые хранятся в отдельной директории. Этот метод очень удобен, если вы хотите выполнить несколько сборок из одного дерева исходного кода, но с различными конфигурациями. Для теневой сборки запустите 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
Примечание: Шаг 'make install' необходим только в том случае, если Qt сконфигурирован с опцией -prefix, которая является стандартной для платформ на основе Unix, если не используется опция конфигурации -developer-build. На Windows Qt настроен как сборка без -prefix по умолчанию.
Примечание: -developer-build предназначен для разработки Qt, а не для распространения приложений. Такая сборка содержит больше экспортированных символов, чем стандартная сборка, и компилируется с более высоким уровнем предупреждений.
Модули и функции
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.
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 для разработки на конкретных платформах:
- Страница Википедии Сборка Qt 5 для Android
- Qt для iOS — сборка из исходного кода
- Qt для WinRT — сборка из исходного кода
- Настройка встраиваемого устройства 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 на целевом устройстве с приложением. Опция -opengl принимает две версии OpenGL ES, es2 для OpenGL ES 2.0 или es1 для OpenGL ES Common Profile.
configure.bat -opengl es2
Также можно использовать -opengl dynamic, что позволит приложениям динамически переключаться между доступными вариантами во время выполнения. Более подробную информацию о преимуществах использования динамического переключения GL см. в разделе «Драйверы графики».
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/configure-options.html