Сборка проектов из командной строки
В данной статье объясняется, как конфигурировать и собирать существующие проекты. Если вы хотите узнать, как создать проект CMake на основе Qt, смотрите статью о том, как начать работу с CMake.
Чтобы собрать проект на Qt, CMake необходимо знать, где находится установка Qt. Обычно это делается путем установки переменной CMake CMAKE_PREFIX_PATH
в значение префикса пути установки Qt. Если вы выполняете кросс-компиляцию, смотрите раздел Кросс-компиляция для получения подробной информации о дополнительных переменных, которые вам необходимо установить.
Если Qt устанавливается с помощью онлайн-установщика, выберите версию Qt в каталоге установки верхнего уровня. Например, следующая команда показывает, как это делается в Windows:
cmake -DCMAKE_PREFIX_PATH=C:\Qt\6.2.6\msvc2019_64 -S <source-dir> -B <build-dir>
Заполнители <source-dir>
и <build-dir>
представляют каталог с исходниками и каталог сборки вашего проекта.
Генераторы CMake
CMake создает необходимые системные файлы сборки, которые позволяют использовать для сборки вашего проекта такие инструменты, как GNU Make или Ninja,.
Генератор CMake по умолчанию зависит от платформы и среды сборки. Например, в Windows CMake создает файлы проекта Visual Studio, если обнаруживается среда Visual Studio.
Для единообразия опыта разработчиков на всех платформах используйте генератор Ninja или Ninja Multi-Config.
Вы можете выбрать генератор CMake, установив переменную среды CMAKE_GENERATOR
или используя аргумент -G
:
cmake -G Ninja ...
qt-cmake
Скрипт qt-cmake
– удобная альтернатива для настройки вашего проекта. Он избавляет вас от необходимости указывать CMAKE_PREFIX_PATH
. Вы можете найти его в каталоге bin в каталоге установки Qt. Этот скрипт передает все параметры в CMake, так что вы можете использовать его так же, как и cmake
:
C:\Qt\6.2.6\msvc2019_64\bin\qt-cmake -G Ninja -S <source-dir> -B <build-dir>
После создания системных файлов сборки ваш проект готов к сборке:
cd <build-dir>
ninja
Вы также можете использовать независимую от генератора команду CMake:
cmake --build <build-dir>
Кросс-компиляция
Создание вашего проекта для платформы, отличной от вашей машины разработки, называется кросс-компиляцией. Примером является сборка для Android (целевая платформа) на компьютере с Windows (основная платформа).
Для кросс-компиляции с помощью CMake для большинства платформ требуется файл цепочки инструментов. Также в дополнение к версии Qt для целевой платформы требуется версия Qt для системы разработки. Например, вам нужно установить Qt для Windows и Qt для Android для кросс-компиляции для Android в Windows.
Используйте qt-cmake
из установки Qt для целевой платформы, чтобы кросс-компилировать ваш проект для этой платформы:
<target-qt>/bin/qt-cmake -S <source-dir> -B <build-dir>
Это настроит ваш проект для целевой платформы. Файл цепочки инструментов передается автоматически, и, возможно, настраиваются другие переменные для конкретной платформы.
Указание пользовательского файла цепочки инструментов
Скрипт qt-cmake
передает внутренний файл цепочки инструментов Qt в CMake. Этот файл цепочки инструментов устанавливает несколько переменных, специфичных для целевой платформы Qt.
Если вы используете установку Qt, которая не была собрана на вашем компьютере, qt-cmake
необходимо знать расположение файла цепочки инструментов CMake для целевой платформы.
В таком случае вы можете указать qt-cmake
загрузить пользовательский файл цепочки инструментов, установив переменную QT_CHAINLOAD_TOOLCHAIN_FILE
:
~/Qt/6.2.6/android_armv7/bin/qt-cmake -DQT_CHAINLOAD_TOOLCHAIN_FILE=<file-path> -S <source-dir> -B <build-dir>
Это указывает внутреннему файлу цепочки инструментов Qt также загрузить ваш пользовательский файл цепочки инструментов.