- 编写
CMakeLists.txt
文件 名称固定 - 注释
#
- 使用
${}
使用变量的值 - 定义和赋值变量 set(var val)
clion 生成的cmake 文件
cmake_minimum_required(VERSION 3.27) # 需要的cmake最低版本 project(Proj) # 项目名称 set(CMAKE_CXX_STANDARD 17) # set 函数, 设置变量的值, CMAKE_CXX_STANDARD 是使用的 c++ 标准 add_executable(Proj main.cpp) # 使用指定的源文件来生成目标可执行文件, 第一个参数为 target
常用命令
- set 设置变量的值
- add_library
类似 add_executable , 只不过他来生成库文件
示例add_library(proj add.cpp)
- aux_source_directory
在 add_executable 或者 add_library 一个个文件添加确实可以,但是不太优雅,使用这个命令可以自动识别源文件保存到一个变量中
示例aux_source_directory(. SRC_LIST)
识别当前目录下的源文件,保存在 SRC_LIST 这个变量中, 使用这个变量只需要这样add_executable(Proj ${SRC_LIST})
- include_directories
为该位置之后的 target 添加头文件搜索路径
示例include_directories(./includes)
添加./includes 文件夹为头文件搜索路径, 这个命令可以调用多次 - target_include_directories
为特定的目标指定头文件搜索路径
示例 target_include_directories(Proj PUBLIC ./includes) 给add_executable 或 add_library 的target 添加头文件 要放在 add_executable 或 add_library 后边 - target_link_libraries
为特定的目标指定链接时依赖的库文件
示例target_link_libraries(Proj muduo_net muduo_base mysqlclient hiredis pthread)
位置同 target_include_directories, 要在 add_executable 或 add_library 后边 - add_compile_options
添加编译参数
示例 add_compile_options( -fno-elide-constructors -Wall) - find_library
查找库
示例find_library(MY_LIB mylib ./lib)
作用是去./lib文件夹 查找名为 mylib的库, 存储到MY_LIB 这个变量中 message
打印, 可以用来打印变量的值
示例message(STATUS hello)
STATUS 表示是一般的状态信息, 还可以是 WARNING 等常用内置变量
- PROJECT_SOURCE _DIR 工程顶层目录
- CMAKE_CURRENT_SOURCE_DIR 当前cmake文件所在的目录
- EXECUTABLE_OUTPUT_PATH 和 LIBRARY_OUTPUT_PATH 可执行文件和库文件的输出路径
- PROJECT_NAME 项目名称, 由 project 指令确定
- CMAKE_CXX_FLAGS c++ 编译选项