Настройка Qt
configure — это инструмент командной строки, который определяет, как скомпилировать Qt для конкретной платформы. Configure может исключить функцию в Qt, а также определить, как Qt компилирует и развертывает приложения на целевых платформах. На этой странице обсуждаются некоторые параметры configure, но для полного списка параметров введите команду configure -h. Configure следует запускать из основной директории исходного кода Qt.
Если не указано иное, команды на этой странице предназначены для платформ Linux. На macOS и Windows PATH и структура директорий отличаются, поэтому команды будут различаться. Также на системах Windows скрипт configure называется 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
Опция configure -skip позволяет исключить директории исходного кода верхнего уровня из сборки 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 перед именем библиотеки для configure.
В таблице ниже обобщены параметры библиотек сторонних производителей:
| Название библиотеки | Включено в 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. Например, чтобы использовать системную библиотеку 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 для разработки на конкретных платформах:
- Страница Википедии Сборка 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.15/configure-options.html