目录

  1. CMake构建流程概述
  2. 构建过程步骤
  3. 构建输出与调试
  4. 清理构建
  5. 参考资料

CMake构建流程概述

CMake 构建流程是通过配置、生成构建文件、编译源代码等步骤来完成的。CMake 的优势在于它为跨平台构建提供了简洁的解决方案,能够生成适应不同平台和编译器的构建文件,避免手动配置繁琐的构建步骤。

CMake 本身不进行实际编译工作,它生成的构建文件由本地的构建工具(如 makeMSBuildXcode 等)使用来执行编译、链接等操作。


构建过程步骤

1. 创建构建目录

为了保持源代码目录的整洁,通常会在项目根目录下创建一个独立的构建目录。通过这种方式,可以避免生成的临时文件和构建文件与源代码混合在一起。

mkdir build
cd build

这将创建并进入一个名为 build 的新目录。在该目录中,你将生成构建文件并执行构建操作。

2. 配置项目

在构建目录中运行 cmake 命令来配置项目并生成构建文件。cmake 命令会查找源代码目录中的 CMakeLists.txt 文件,该文件定义了项目的构建配置、源文件、库文件等信息。

cmake ..

此命令会告诉 CMake 读取上级目录(即源代码目录中的 CMakeLists.txt)并生成适合当前平台和编译器的构建文件(如 Makefile、Visual Studio 工程文件等)。

你还可以通过命令行传递选项来控制构建配置,例如指定构建类型:

cmake -DCMAKE_BUILD_TYPE=Release ..

这将设置 CMake 构建类型为 Release,从而启用优化编译。

3. 编译项目

在配置完成并生成了构建文件之后,使用 CMake 提供的 --build 选项开始编译项目。CMake 会调用底层的构建工具(如 makeMSBuild 等)来执行编译工作。

cmake --build .

此命令会开始编译项目并生成最终的可执行文件、库文件等。如果你指定了多个构建目标,可以通过 --target 选项来指定特定的目标:

cmake --build . --target MyExecutable

4. 安装项目

如果项目有安装规则(如安装头文件、库文件等),可以通过 cmake --install 命令来安装构建的文件。安装路径由 CMAKE_INSTALL_PREFIX 变量决定,默认值通常为 /usr/localC:/Program Files

cmake --install .

这将把编译后的文件安装到指定的目录中。你也可以自定义安装目录:

cmake --install . --prefix /path/to/install

安装步骤可以在 CMakeLists.txt 中定义,例如,指定哪些文件应当被安装到目标目录:

install(TARGETS MyExecutable DESTINATION bin)
install(FILES my_header.h DESTINATION include)

5. 构建选项与调试

  • 选择构建类型: 使用 CMAKE_BUILD_TYPE 可以指定构建的类型。常见选项有:
    • Debug:启用调试信息并关闭优化。
    • Release:启用优化并禁用调试信息。
    • RelWithDebInfo:启用优化并生成调试信息。
    • MinSizeRel:生成最小体积的代码。
    例如,选择 Release 模式进行构建: cmake -DCMAKE_BUILD_TYPE=Release ..
  • 查看构建输出: 通过 message() 可以在 CMake 中输出调试信息: message(STATUS "This is a debug message") CMake 会将信息输出到命令行,帮助开发者调试和跟踪构建过程。

清理构建

当你需要重新构建项目或清理中间文件时,可以使用以下几种方法:

  • 删除构建目录: 直接删除构建目录中的所有内容: rm -rf build
  • 使用 cmake --clean(如果支持): 在一些版本的 CMake 中,你可以使用 cmake --clean 来清理构建文件: cmake --clean

但是,最常见的做法是删除整个构建目录并重新创建它,这样可以确保从干净的状态开始。


参考资料