CMake 使用
查看本机是否安装cmake
安装cmake(以centos6.5举例)
首先让我们从最简单的代码入手,先来体验下cmake是如何操作的。编写main.c,如下
然后在main.c相同目录下编写CMakeLists.txt,内容如下,
第一行意思是表示cmake的最低版本要求是2.8,我们安装的是2.8.12;第二行是表示本工程信息,也就是工程名叫demo;第三行比较关键,表示最终要生成的elf文件的名字叫main,使用的源文件是main.c
在终端下切到main.c所在的目录下,然后输入以下命令运行
cmake .
再来看看目录下的文件,
可以看到成功生成了Makefile,还有一些cmake运行时自动生成的文件。
然后在终端下输入make并回车,
可以看到执行cmake生成的Makefile可以显示进度,并带颜色。再看下目录下的文件,
可以看到我们需要的elf文件main也成功生成了,然后运行main,
运行成功!
注: 如果想重新生成main,输入make clean就可以删除main这个elf文件。
接下来进入稍微复杂的例子:在同一个目录下有多个源文件。文件及源码如下
修改CMakeLists.txt,在add_executable的参数里把其他源文件加进来
然后重新执行cmake .生成Makefile
运行make,
然后运行重新生成的elf文件main
运行成功!
可以类推,如果在同一目录下有多个源文件,那么只要在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})