一、Makefile的介绍
1、格式:
target:prerequisites
commmand
(1)target可以是目标文件,可以是Object
(2)prerequisites先决条件,要生成那个 target 所需要的文件或是目标
2、例子说明
test:main.o key.o
cc -o test main.o key.o
main.o:main.c
cc -c main.c
key.o:key.c
cc -c key.c
clean :
rm main.o
(1)mian.o执行文件
(2)main.c依赖文件
(3)cc - c main.c系统命令行,一定一个Tab键开头
(4)当main.c的修改时间比main.o修改时间更新,或者main.o不存在,make就会执行后续定义的命令
(5)clean是一个动作名,没有依赖文件,要想执行需要make + 动作名,如make clean,常用于与编译无关的动作,如打包、备份等
3、make是如何工作的
(1)默认下输入make,会在当前目录寻找名字叫“Makefile”或“makefile”的文件
(2)如果找到,它会找文件的第一个目标文件,并把这个文件当成最终的目标文件,如test
(3)如果test不存在,或者test所依赖的后面的.o文件的修改时间比test新,那么就会执行后面所定义的命令,来生成test
4、makefile中使用变量
(1)声明变量
objects = mian.o key.o
(2)变量的使用
test:$(objects)
cc -o test $(objects)
5、make的自动推导
(1)make可以自动推导文件以及文件依赖后面的命令,不写是make会自己推到命令
(2)
.PHONY:clean
clean:
rm test
.PHONY表示clean是个伪目标
(3)不成文的规定clean都是放到文件最后,放到开头clean会变成默认目标