使用命令行构建项目
此页面解释了如何配置和构建现有项目。如果您想了解如何创建基于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项目文件。
为了在所有平台上提供一致的开发者体验,请使用Ninja
或Ninja 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 公司以及在全世界其他国家的商标。所有其他商标均为各自所有者的财产。