1 引言
linux中进行C/C++开发,一般都是先用编辑器写好代码,然后使用gcc工具来编译程序。
文件数量不多的工程,可以直接敲gcc命令进行编译。对于文件较多的工程,就要使用Makefile来管理代码的编译了。
而手动编写Makefile其实也是具有一定的难度的,更方便的方式是使用更易编写CMake来自动生成Makefile。
2 Linux中安装CMake
这里插一句,在Window系统中,许多人也用过CMake,它可以配合集成开发环境如Visual Studio,通过图形化的操作界面,操作CMake图形界面进行代码的编译。
本篇介绍的,在Linux中使用CMake,还用不到图形界面,仍然是文本编辑的方式使用CMake。
CMake在Linux的安装,直接使用命令安装即可:
sudo apt install cmake
安装完成之后可以查看cmake的版本,我用的是3.10.2
3 编译单个文件的CMake基础示例
3.1 编写C源文件
首先写一个最简单的hello word程序,hello.c:
#include <stdio.h>
int main(void)
{
printf("Hello World\n");
return 0;
}
3.2 编写CMakeLists.txt
然后在相同目录下编写CMakeLists.txt:
cmake_minimum_required (VERSION 2.8)
project (hello)
add_executable(hello hello.c)
这是一个最基础的CMake使用模板,这3行的含义如下:
- 第一行:要求cmake的最低版本为2.8
- 第二行:工程名
- 第三行:生成的可执行文件名为hello,使用的源文件为hello.c
注:以上3条,add_executable起主要作用,前两条去掉也可以运行
3.3 执行cmake指令生成Makefile
然后输入以下命令运行cmake,从而帮我们自动生成makefile文件:
cmake .
这个“点”表示是当前目录搜索源文件。
cmake指令的执行结果如下:
可以看下CMake生成的makefile文件,相比较自己手写的makefile,这个自动生成的makefile,内容很多:
3.4 执行make指令编译代码
makefile文件产生之后,就可以使用make指令来编译源代码了:
make
执行make指令之后,可以看到生成了可执行文件hello,运行这个hello文件,就可以看到程序的输出了:
4 总结
本篇介绍了Liunx中如何使用CMake来生成makefile,进行进行源程序的编译。
将上述的CMake编译单个源文件的使用操作总结为一张图:
编写CMake主要就是编写CMakeLists.txt,基础模板为:
cmake_minimum_required (VERSION 2.8)
project (hello)
add_executable(hello hello.c)
其中最主要的一句就是:
add_executable(hello hello.c)