本文是本系列的第六篇文章,你可以通过以下链接阅读以前的章节
1.Linux中编译C++代码的g++工具,以及g++的常用操作指令
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