1.makefile的规则:
target:prerequisites
command
target是一个目标文件,可以是一个.o文件,也可以是可执行文件,还可以是标签(伪目标)
prerequisites就是要生成这个target所需要依赖的文件
command就是生成这个目标所要执行的命令(任意的shell命令)
这其实就是一个文件的依赖关系,target需要依赖prerequisite中的文件,其生成规则定义在command中。
2.make是如何工作的
如果我们要编译一个edit可执行文件,依赖文件为几个头文件和几个.c文件
a.make会在当前目录下寻找名字为Makefile或者makefile的文件
b.如果找到,它会找文件中的第一个目标文件,也就是edit文件,并把这个文件作为最终的目标文件
c.如果edit文件不存在,或者是edit所依赖的后面的.o文件的修改时间比edit这个文件新,那么,他会执行后面command定义的命令来生成这个edit文件
d.如果edit所依赖的.o文件也存在,那么make会在当前文件中找目标为.o文件的依赖,如果找到再根据它的规则生成.o文件
e.最终找到所有目标的依赖,依次生成所需要的目标,最终生成最后的目标文件。
举例:创建makefile
test:main.o
gcc -o test main.o
main.o:main.c
gcc -c main.c