一、基础语法
targets: prerequisites
command
command
command
targets(目标):通常每项规则只有一个,可以为标签(clean)/目标文件(中间文件)/可执行文件
prerequisites(先决条件/依赖项):作为输入数据的文件名,用空格分隔,可以为多个或没有
command:执行的命令,每一条命令占一行,开头为tab(不能为空格)
依赖项中如果存在文件比目标文件要新的话(新更新),定义的命令就会被执行
Makefile中注释为"#“与C/C++中”//“类似,如果要使用该符号则用”#"
二、简单示例
all:hello
hello:hello.o
gcc hello.o -o hello
hello.o:hello.c
gcc -c hello.c
clean:
rm -f hello.o
1、输入make指令后,会在当前目录下按序找名字叫"GNUmakefile"、“makefile”、"Makefile"的文件
2、找到文件后,寻找文件中的第一个目标(target)
此示例中规则"all"为默认任务,在执行"make"命令时默认执行,找到“all”这个文件,并把这个文件作为最终的目标文件(命令执行后的生产物)
3、如果"all"文件不存在或"all"所依赖的文件修改时间要比"all"这个文件新(新更新),那