Makefile的作用
工程中有很多文件
makefile定义了那些文件需要先编译,那些文件需要重新编译等等。就像一个脚本
好处就是“自动化编译”只需要一个make命令,提高软件开发效率。
例:
vim Makefile
app:sub.c add.c mult.c xxx.c (依赖)
gcc sub.c add.c mult.c xxx.c -o app
make (会自己在当前目录寻找Makefile)
Makefile 规则
目标 ...:依赖...
命令(Shell命令)
...
目标:最终要生成的文件
依赖:生成目标所需要的文件或是目标
命令:通过执行命令对依赖操作生成目标 (命令前必须TAB缩进)
Makefile 工作原理
首先检查规则有无依赖
1、如果在,执行
2、如果不在,向下检查其他规则看是否有依赖
Makefile其他规则都是为了第一条规则服务的,没有关系是不会去执行的
检测更新时,在执行规则中的命令时,会比较目标和依赖文件的时间
如果依赖的时间比目标时间晚(更新过),需要重新生成目标
如果依赖的时间比目标时间早,目标不需要更新,对应规则的命令不需要被执行