Параметры конфигурации 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.6 qmake
Конфигурация с опцией -prefix означает, что Qt-бинарные файлы и библиотеки будут установлены в другую директорию, в данном случае /opt/Qt5.6. Запуск qmake генерирует Makefiles в директории ~/qt-build, а не в директории source. После создания Makefiles выполните следующие команды для сборки Qt-бинарных файлов и библиотек и их установки:
make make install
Примечание: Шаг «make install» требуется только в том случае, если Qt сконфигурирован с опцией -prefix, которая является стандартной для Unix-подобных платформ, за исключением использования опции конфигурации -developer-build. На Windows Qt настроен на не-префиксную сборку по умолчанию.
Примечание: -developer-build предназначен для разработки Qt, а не для распространения приложений. Такая сборка содержит больше экспортированных символов, чем стандартная сборка, и компилируется с более высоким уровнем предупреждений.
Включение и исключение модулей Qt
С помощью configure можно включать или исключать отдельные модули Qt в сборке Qt. Однако имейте в виду, что многие модули зависят от других модулей, поэтому могут возникнуть проблемы с зависимостями при некоторых конфигурациях сборки.
Исключение подмодуля Qt
Опция configure -skip позволяет исключить определённые подмодули Qt из сборки Qt. Эти подмодули соответствуют подмодулям Git в стандартном репозитории Qt 5. Обратите внимание, что многие пакеты содержат несколько модулей Qt. Например, чтобы исключить Qt NFC и Qt Bluetooth из сборки Qt, укажите -skip qtconnectivity в качестве аргумента для configure.
./configure -skip qtconnectivity
Включение или исключение функций
Опции -feature-<feature> и -no-feature-<feature> включают и исключают конкретные функции соответственно, где <feature> перечислены в файле qtbase/src/corelib/global/qfeatures.txt.
Например, чтобы отключить Доступность, укажите -no-feature-accessibility в качестве аргумента:
./configure -no-feature-accessibility
Примечание: Функции за пределами qtbase не включены в список функций.
Библиотеки сторонних производителей
Пакеты исходного кода Qt включают библиотеки сторонних производителей. Чтобы определить, должны ли Qt использовать системные версии библиотек или собственные, перед именем библиотеки передайте либо -system либо -qt в configure.
В таблице ниже обобщены параметры библиотек сторонних производителей:
| Имя библиотеки | Включено в Qt | Установлено в системе |
|---|---|---|
| zlib | -qt-zlib |
-system-zlib |
| libjpeg | -qt-libjpeg |
-system-libjpeg |
| libpng | -qt-libpng |
-system-libpng |
| xcb | -qt-xcb |
-system-xcb |
| xkbcommon | -qt-xkbcommon |
-system-xkbcommon |
| 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-msvc2010
После этого сгенерированные 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 — Сборка из исходного кода
- Qt для Embedded Linux — Сборка из исходного кода
- Qt для Raspberry Pi — сайт сообщества для устройств Raspberry
- Устройства — список других устройств и наборов микросхем
Параметры OpenGL для Windows
В Windows Qt можно сконфигурировать для использования системного OpenGL или ANGLE. По умолчанию Qt настроен на использование ANGLE, который включён в Qt и зависит от DirectX SDK. ANGLE позволяет запускать Qt-приложения, зависящие от OpenGL, без установки последних OpenGL-библиотек.
Опция -opengl может быть использована для настройки Qt на использование OpenGL целевой системы, другой версии OpenGL ES (с ANGLE или без него), или динамического переключения между доступными реализациями OpenGL.
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 см. на странице Драйверы графических устройств.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/configure-options.html