Skip to content

CMake 学习笔记

CMake是一个跨平台的项目管理工具, CMakeLists.txt 文件在CMake作用下生成Makefile文件。

CMake 运行流程

源文件在该目录下的 CMakeLists.txt 在 CMake 作用下生成 Makefile 文件,make 命令根据 Makefile 对源文件进行编译。

CMakeFlow

CMake 简化了 Makefile 文件的编写难度,CMake 会自动检测可用编译器,根据配置文件自动寻找外部依赖库等。每个目录下都应该有 CMakeLists.txt 文件。根 CMakeLists.txt 会收集所有目录下的子 CMakeLists.txt

最小 CMakeLists.txt 的内容:

bash
# cmake语法关键字--大/小写无关
# cmake的最低版本号,注意VERSION需要大写
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)

# 设置一个工程名字
project(Demo1)

# 目标可执行程序Demo, 需要编译main.cc
add_executable(Demo main.cc)

编写完成 CMakeLists.txt 之后,就可以执行 cmake ${PATH} 来生成 makefile 文件,其中 ${PATH} 为根 CMakeLists.txt 路径。

CMake 语法预设变量

变量 含义
CMAKE_MAJOR_VERSION cmake 主版本号
CMAKE_MINOR_VERSION cmake 次版本号
CMAKE_C_FLAGS 设置 C 编译选项
CMAKE_CXX_FLAGS 设置 C++ 编译选项
PROJECT_SOURCE_DIR 工程的根目录
PROJECT_BINARY_DIR 运行 cmake 命令的目录
CMAKE_CURRENT_SOURCE_DIR 当前CMakeLists.txt 所在路径
CMAKE_CURRENT_BINARY_DIR 目标文件编译目录
EXECUTABLE_OUTPUT_PATH 重新定义目标二进制可执行文件的存放位置
LIBRARY_OUTPUT_PATH 重新定义目标链接库文件的存放位置
CMAKE_ROOT CMake 安装路径

基于 VitePress 构建