【Linux】Makefile是什么,怎么写Makefile?

什么是Makefile?

之前我们都是在VS上编写代码,或许不太注重代码是如何运行生成结果的,因为系统在底下实现了这些功能,不过我们当时应该学了,在VS上的代码要经过(预处理-汇编-连接)等步骤才会生成目标文件,最后才会将正确的运行结果显示在屏幕上;

那么,在unix下makefile关系到整个工程的编译规则,一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。

makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令

那么该如何编写makefile呢?

makefile的编写规则:

目标文件 : 依赖文件

Tab键 命令

下面举例子创建一个Makefile项目

在Makefile目录下建一个main.c add,c add,h sub.c sub.h

  • mkdir Makefile
  • ls
  • touch main.c add,c add,h sub.c sub.h

如下:分别编辑代码:

【Linux】Makefile是什么,怎么写Makefile?

创建makefile

【Linux】Makefile是什么,怎么写Makefile?

使用make命令编译

【Linux】Makefile是什么,怎么写Makefile?

那么makefile是如何工作的?

【Linux】Makefile是什么,怎么写Makefile?

如果觉得上面的makefile有点麻烦,那么再介绍两种简单的版本

【Linux】Makefile是什么,怎么写Makefile?

【Linux】Makefile是什么,怎么写Makefile?