cmake
是一个开源的、跨平台的自动化构建系统,它使用简单的配置文件(称为 CMakeLists.txt
)来控制软件编译过程。这些配置文件定义了项目的源代码文件、编译选项、需要的库等,然后 cmake
可以生成标准的构建文件,如 Makefile 或 Visual Studio 项目文件,这些文件随后可以用来构建(编译和链接)项目。
使用 cmake
的主要优点包括:
- 跨平台:
cmake
支持多种操作系统和编译器,使得开发者可以在不同的平台上使用相同的构建逻辑。 - 简单性:
CMakeLists.txt
文件使用简单的语法,易于阅读和编写。 - 可扩展性:
cmake
提供了许多命令和变量,可以灵活地控制构建过程。 - 集成性:
cmake
可以与其他工具和库(如 CTest、CDash、CTestDrive 等)集成,以支持更复杂的构建和测试需求。
使用 cmake
的一般步骤是:
编写
CMakeLists.txt
:在项目的根目录下创建一个或多个CMakeLists.txt
文件,定义项目的构建规则。配置项目:在命令行中进入包含
CMakeLists.txt
的目录,并运行cmake
命令进行配置。这通常会生成一些构建文件(如 Makefile)。
cmake .. # 假设当前目录是一个构建目录,CMakeLists.txt 在上一级目录中 |
或者,如果需要指定构建目录和生成器(如 Makefile 或 Visual Studio 项目文件):
cmake -B build -S . -G "Unix Makefiles" # 在当前目录的 'build' 子目录中生成 Makefile |
|
# 或者 |
|
cmake -B build -S . -G "Visual Studio 16 2019" # 在当前目录的 'build' 子目录中生成 Visual Studio 2019 项目文件 |
构建项目:使用生成的构建文件来构建项目。例如,如果生成了 Makefile,可以使用
make
命令来构建项目:
make # 在构建目录中运行 |
- (可选)安装项目:如果
CMakeLists.txt
中定义了安装规则,可以使用make install
或相应的命令来安装项目。 - (可选)测试项目:如果项目包含测试,并且
CMakeLists.txt
中定义了测试规则,可以使用ctest
命令来运行测试。
这只是 cmake
的基本用法,它还提供了许多其他功能和选项,可以通过查看官方文档或运行 cmake --help
命令来获取更多信息。