一. 简介
前一篇文章学习了针对只有一个 .c源文件,cmake工具是如何使用编译的,文章如下:
cmake的使用方法:单个源文件的编译-CSDN博客
本文对 所编写的 CMakeLists.txt文件的内容进行分析。从而了解如何编写一个 CMakeLists.txt文件。
二. Cmake编译:CMakeLists.txt 文件内容分析
上面我们通过了一个非常简单例子向大家演示了如何使用
cmake
,重点在于去编写一个
CMakeLists.txt 文件,现在来看看
CMakeLists.txt
文件中写的都是什么意思。
前一篇文章的 CMakeLists.txt文件的内容如下:
project(HELLO)
add_executable(hello ./main.c)
1. 第一行 project(HELLO)
project
是一个命令,命令的使用方式有点类似于
C
语言中的函数,因为命令后面需要提供一对括号,
并且通常需要我们提供参数,多个参数使用空格分隔而不是逗号 “
,
”。
project
命令用于设置工程的名称,括号中的参数
HELLO
便是我们要设置的工程名称;设置工程名称并不是强制性的,但是最好加上。
2. 第二行 add_executable(hello ./main.c)
add_executable
同样也是一个命令,用于生成一个可执行文件,在本例中传入了两个参数,第一个参数表示生成的可执行文件对应的文件名,第二个参数表示对应的源文件;所以
add_executable(hello ./main.c)
表
示需要生成一个名为
hello
的可执行文件,所需源文件为当前目录下的
main.c
。
使用 out-of-source 方式构建
在上面的例子中,
cmake
生成的文件以及最终的可执行文件
hello
与工程的源码文件
main.c
混在了一起,这使得工程看起来非常乱,当我们需要清理
cmake
产生的文件时将变得非常麻烦,这不是我们想看到
的;
我们需要将构建过程生成的文件与源文件分离开来,不让它们混杂在一起,也就是使用 out-of-source 方式构建。
将 cmake 编译生成的文件清理下,然后在工程目录下创建一个 build 目录,如下所示:
然后进入到
build
目录下执行
cmake
:
cd build/
cmake ../
make
具体操作如下:
这样
cmake
生成的中间文件以及
make
编译生成的可执行文件,就全部在
build
目录下了。
如果要清理工程,直接删除
build
目录即可,这样就方便多了: