Spec-Zone.ru › Qt 5.6

Параметры конфигурации 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API