1、什么是makefile?

Makefile:将不同模块放在不同的目录中,定义一系列的规则进行 “自动化编译”
2、Makefile写法

vim makefile
填写样例:
app:sub.c add.c mult.c div.c main.cgcc sub.c add.c mult.c div.c main.c -o app
3、工作原理

1、依赖不存在,则 向下 检查:
比如:

2、时间检测
依赖的时间比目标的时间早:make: ‘app’ is up to date.
依赖的时间比目标的时间晚(我修改一下main.c文件):就会重新生成目标
4、变量(更方便)

5、模式匹配(更更方便)


6、函数



src中存放所有.c的文件,然后用patsubst将.c都替换成.o的文件。

**注意:**加上clean语句可以自动删除.o的文件,不过直接执行make不会调用clean,执行make clean才会调用。
再来补充一下:现在我们再make一下,把.o文件重新生成

touch clean 创建一个clean文件,然后make clean,这并不会执行清除操作,
这是由于clean没有依赖,总是被认为是最新的。
clean并不需要生成一个具体的文件,因此我们可以定义伪目标:.PHONYL:clean
.PHONY:clean
clean:rm $(objs) -f
此时执行 make clean 就可以清除.o文件了!