基本语法
CMakeLists.txt 的核心命令就十几个:定义项目、生成目标、设编译选项、加头文件目录、链接库。
核心命令
- cmake_minimum_required:版本要求
- project():项目名 + 语言
- add_executable / add_library:生成目标
- target_include_directories:头文件路径
- target_link_libraries:链接库
- set():设置变量
- add_subdirectory:包含子目录
变量
${变量名} 引用。CMAKE_BUILD_TYPE 构建类型(Release/Debug)、CMAKE_CXX_STANDARD C++ 标准。
代码示例
# CMakeLists.txt 完整示例
cmake_minimum_required(VERSION 3.10)
project(MyApp CXX)
# C++17 标准
set(CMAKE_CXX_STANDARD 17)
# 生成可执行文件
add_executable(app
src/main.cpp
src/utils.cpp
)
# 头文件目录
target_include_directories(app PRIVATE include)
# 编译选项
target_compile_options(app PRIVATE -Wall -Wextra)
# 链接库
target_link_libraries(app PRIVATE m)