在命令行构建工程

This page explains how to configure and build existing projects. If you want to know how to create a Qt-based CMake project, see the documentation on how to get started with CMake .

To build a Qt project, CMake needs to know where the Qt installation is located. Usually this is done by setting the CMake variable CMAKE_PREFIX_PATH to Qt's installation prefix. If you are cross-compiling, see 交叉编译 for details on additional variables you will need to set.

若使用在线安装程序安装 Qt,请在顶层安装目录中选择 Qt 版本。例如,以下命令展示在 Windows 如何做到这点:

cmake -DCMAKE_PREFIX_PATH=C:\Qt\6.5.1\msvc2019_64 -S <source-dir> -B <build-dir>
					

The <source-dir> and <build-dir> placeholders represent the source and build directories of your project.

CMake 生成器

CMake 生成必要的构建系统文件,使构建工具 (譬如 GNU Make 或 Ninja) 能够构建您的工程。

CMake 的默认生成器从属平台和构建环境。例如在 Windows,CMake 生成 Visual Studio 工程文件若检测到 Visual Studio 环境。

为在所有平台获得一致开发体验,请使用 Ninja or Ninja Multi-Config generator.

You can select the CMake generator either by setting the CMAKE_GENERATOR environment variable or using the -G 自变量:

cmake -G Ninja ...
					

qt-cmake

The qt-cmake script is a convenient alternative to configure your project. It eliminates the need for you to specify the CMAKE_PREFIX_PATH 。可以找到它在 bin directory of your Qt installation prefix. The script passes all parameters to CMake, so you can use it just like you would use cmake :

C:\Qt\6.5.1\msvc2019_64\bin\qt-cmake -G Ninja -S <source-dir> -B <build-dir>
					

在生成构建系统文件后,工程的构建就绪:

cd <build-dir>
ninja
					

You can also use the generator-independent CMake command:

cmake --build <build-dir>
					

交叉编译

为异于开发机器的平台构建工程,称为交叉编译。例如在 Windows 机器 (主机平台) 为 Android (目标平台) 构建。

采用 CMake 交叉编译要求 toolchain file for most platforms. It also requires a Qt version for the development host, in addition to a Qt version for the target platform. For example, you need Qt for Windows and Qt for Android installed to cross-compile for Android on Windows.

使用 qt-cmake from the Qt installation for the target platform, to cross-compile your project for that platform:

<target-qt>/bin/qt-cmake -S <source-dir> -B <build-dir>
					

This will configure your project for the target platform. The toolchain file is automatically passed, and possibly other platform-specific variables are set up.

指定自定义工具链文件

The qt-cmake script passes a Qt-internal toolchain file to CMake. This toolchain file sets several variables that are specific to Qt's target platform.

若正使用的 Qt 安装尚未在您的机器中构建, qt-cmake needs to know the location of the CMake toolchain file for the target platform.

在这种情况下,可以指导 qt-cmake to chainload a custom toolchain file by setting the QT_CHAINLOAD_TOOLCHAIN_FILE 变量:

~/Qt/6.5.1/android_armv7/bin/qt-cmake -DQT_CHAINLOAD_TOOLCHAIN_FILE=<file-path> -S <source-dir> -B <build-dir>
					

This instructs Qt's internal toolchain file to load your custom toolchain file as well.

CMake 快速入门 部署