本文是本系列的第六篇文章,你可以通过以下链接阅读以前的章节
1.Linux中编译C++代码的g++工具,以及g++的常用操作指令
2.Linux下C++命令行编译示例
3.Linux下的GDB调试器常用指令
4.Linux下C++命令行调试实战
5.跨平台编译工具-CMake的语法特性与常用变量
CMake项目的主要目录存在一个
CMakeLists.txt文件
我们有两种当时设置编译规则
CMakeLists.txt 文件,主目录的 CMakeLists.txt 通过 add_subdirectory 添加子目录即可CMakeLists.txt 文件,子目录编译规则体现在主目录的 CMakeLists.txt 文件在 Linux 平台下使用 CMake 构建 C/C++ 工程的流程如下:
CMakeLists.txt 规则cmake $PATH 生成 Makefile(PATH 是CMakeLists.txt 所在的顶层目录)make 进行编译注意一下 Linux 以下几个文件目录知识
.或者 ./ 代表当前目录..或者 ../ 代表上一级目录../..或者 ../../ 代表上上一级目录内部构建会产生很多中间文件,这些文件并不是我们最终想要的,和工程源代码文件放在一起会显得杂乱无章。
内部构建示例
# 在项目源代码根目录下,使用 cmake 指令解析 CMakeLists.txt ,生成 Makefile 和其他文件
cmake .
# 执行 make 命令,生成 target
make将编译的目录和源代码目录区分开来,放在不同目录中
外部编译示例
# 1. 在当前目录下,创建 build 文件夹
mkdir build
# 2. 进入build目录
cd build
# 3. 解析上级目录的 CMakeLists.txt ,生成 Makefile 和其他文件
cmake ..
# 4. 执行 make ,生成 target
make