使用命令行构建项目

此页面解释了如何配置和构建现有项目。如果您想了解如何创建基于Qt的CMake项目,请参阅如何使用CMake入门的相关文档。

要构建Qt项目,CMake需要知道Qt的安装位置。通常,这是通过将CMake变量CMAKE_PREFIX_PATH设置为Qt的安装前缀来完成的。如果您正在进行交叉编译,请参阅交叉编译以获取您需要设置的额外变量的详细信息。

如果使用Qt在线安装程序安装Qt,请在顶级安装目录中选择一个Qt版本。例如,以下命令演示了在Windows上如何执行此操作

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

占位符<source-dir><build-dir>分别代表您项目的源代码目录和构建目录。

CMake生成器

CMake生成必要的构建系统文件,以便使GNU Make或Ninja等构建工具能够构建您的项目。

CMake的默认生成器取决于平台和构建环境。例如,如果检测到Visual Studio环境,在Windows上,CMake会生成Visual Studio项目文件。

为了在所有平台上提供一致的开发者体验,请使用NinjaNinja Multi-Config生成器。

您可以通过设置环境变量CMAKE_GENERATOR或使用-G参数来选择CMake生成器。

cmake -G Ninja ...

qt-cmake

qt-cmake脚本是一个方便的替代方案,可以配置您的项目。它消除了您需要指定CMAKE_PREFIX_PATH的需求。您可以在Qt安装前缀的bin目录中找到它。脚本将所有参数传递给CMake,因此您可以使用它就像使用cmake一样。

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

生成构建系统文件后,您的项目就准备好可以构建了

cd <build-dir>
ninja

您也可以使用与生成器无关的CMake命令

cmake --build <build-dir>

交叉编译

为与您的开发机器不同的平台构建您的项目称为交叉编译。例如,在Windows机器上为Android(目标平台)构建(主平台)。

使用CMake进行交叉编译通常需要大多数平台的工具链文件。它还需要除了针对目标平台的Qt版本之外,还需要为开发主机安装Qt版本。例如,您需要在Windows上安装Qt和为Android安装Qt才能在Windows上交叉编译Android。

使用目标平台的Qt安装目录中的qt-cmake进行交叉编译,以交叉编译您的项目

<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.7.2/android_armv7/bin/qt-cmake -DQT_CHAINLOAD_TOOLCHAIN_FILE=<file-path> -S <source-dir> -B <build-dir>

这指示 Qt 内部工具链文件同时加载您的自定义工具链文件。

© 2024 Qt 公司。此处包含的文档贡献为其各自所有者的版权。所提供的文档受免费软件基金会发布的 GNU 自由文档许可证版本 1.3 条款的约束。Qt 及其标志是芬兰的 Qt 公司以及在全世界其他国家的商标。所有其他商标均为各自所有者的财产。