【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
如下:分别编辑代码:
创建makefile
使用make命令编译
那么makefile是如何工作的?
如果觉得上面的makefile有点麻烦,那么再介绍两种简单的版本