什么是cmake
根据其官网的定义,cmake是一个开源跨平台的,用于构建、测试和打包软件的一个套件工具。与cmake相关的几个概念需要明晰,如GCC,make和makefile。
- GCC:GCC是GNU Compiler Collection(就是GNU编译器套件),也可以简单认为是编译器,它可以编译很多种编程语言(括C、C++、Objective-C、Fortran、Java等等)
- make:make工具可以看成是一个智能的批处理工具,它本身并没有编译和链接的功能,而是用类似于批处理的方式通过调用makefile文件中用户指定的命令来进行编译和链接的。
- makefile,makefile就是GCC命令的集合,make工具就根据makefile中的命令进行编译和链接的
- cmake,当项目非常大时,手写makefile会非常烦碎,而且不同平台makefile也会不同,所以cmake就是可以根据CMakeLists.txt自动生成makefile。
入门实践
我们已经对于cmake有了一个总体上的认识,接下来就通过官方提供的几个例子介绍下如何使用cmake。
构建单个源文件
项目只有一个源文件,结构如下,我们一般会新建一个目录存储cmake运行的产物,这里我新建了一个build目录。
├── CMakeLists.txt
├── build
└── main.cc
main.cc的内容如下
#include <stdio.h>
#i