Cmake简单实用(单文件与多文件)

CMake 使用

查看本机是否安装cmake

安装cmake(以centos6.5举例)

Cmake简单实用(单文件与多文件)_第1张图片

 

首先让我们从最简单的代码入手,先来体验下cmake是如何操作的。编写main.c,如下

Cmake简单实用(单文件与多文件)_第2张图片

然后在main.c相同目录下编写CMakeLists.txt,内容如下, 

Cmake简单实用(单文件与多文件)_第3张图片

第一行意思是表示cmake的最低版本要求是2.8,我们安装的是2.8.12;第二行是表示本工程信息,也就是工程名叫demo;第三行比较关键,表示最终要生成的elf文件的名字叫main,使用的源文件是main.c
在终端下切到main.c所在的目录下,然后输入以下命令运行

cmake .

 

Cmake简单实用(单文件与多文件)_第4张图片

再来看看目录下的文件,

 

可以看到成功生成了Makefile,还有一些cmake运行时自动生成的文件。
然后在终端下输入make并回车,

Cmake简单实用(单文件与多文件)_第5张图片

可以看到执行cmake生成的Makefile可以显示进度,并带颜色。再看下目录下的文件,

可以看到我们需要的elf文件main也成功生成了,然后运行main,

运行成功!

注: 如果想重新生成main,输入make clean就可以删除main这个elf文件。

接下来进入稍微复杂的例子:在同一个目录下有多个源文件。文件及源码如下

Cmake简单实用(单文件与多文件)_第6张图片

 

Cmake简单实用(单文件与多文件)_第7张图片

修改CMakeLists.txt,在add_executable的参数里把其他源文件加进来

Cmake简单实用(单文件与多文件)_第8张图片

然后重新执行cmake .生成Makefile

Cmake简单实用(单文件与多文件)_第9张图片

运行make, 

然后运行重新生成的elf文件main 

Cmake简单实用(单文件与多文件)_第10张图片

运行成功!

可以类推,如果在同一目录下有多个源文件,那么只要在add_executable里把所有源文件都添加进去就可以了。但是如果有一百个源文件,再这样做就有点坑了,无法体现cmake的优越性,cmake提供了一个命令可以把指定目录下所有的源文件存储在一个变量中,这个命令就是 aux_source_directory(dir var)。

修改CMakeLists.txt如下即可

cmake_minimum_required (VERSION 2.8)

project (demo)

aux_source_directory(. SRC_LIST)

add_executable(main ${SRC_LIST})

你可能感兴趣的:(工程实习,Cmake,Linux编程,centos)