https://www.hahack.com/codes/cmake/
cmake 使用
在 linux 下使用 cmake 生成 makefile 并编译的流程如下:
- 编写 cmake 配置文件 CMakeList.txt
- 执行命令
cmake PATH
或者ccmake PATH
生成 Makefile (ccmake 和 cmake 的区别在于前者提供了一个交互式界面)。其中 PATH 是 CMakefile.txt 所在的目录 - 使用 make 命令进行编译
一、单个源文件
编写 CMakeList.txt 文件
1 | # CMake 最低版本号要求 |
二、多个源文件
CMakeList.txt 文件
1 | cmake_minimum_required(VERSION 3.14) |
三、多个目录,多个源文件
1 | /LearnTest |
1 | cmake_minimum_required(VERSION 3.14) |
- 使用命令
add_subdirectory
指明本项目包含一个子目录 math,这样 math 目录下的CMakeLists.txt
文件和源代码也会被处理。 - 使用
target_link_libraries
指明可执行文件 LearnTest 需要链接一个名为 MathFunctions 的链接库
子目录 math 中 CMakeLists.txt 文件如下
1 | # 查看当前目录下的所有源文件,并将名称保存到 DIR_LIB_SRCS 变量 |
四、安装
CMake 也可以指定安装规则,以及添加测试。这两个功能分别可以通过在产生 Makefile 后使用 make install
和 make test
来执行。在以前的 Makefile 中,可能需要为此编写 install 和 test 两个伪目标和相应的规则
五、支持 GDB
需要指定 Debug 模式下开启 -g 选项
1 | set(CMAKE_BUILD_TYPE "Debug") |