规则:
目标 依赖 命令
target:prerequisites
<tab>command
注意:命令行必须以tab键开始!!
makefile文件中存在系统默认的自动化变量:
1. $^ 代表所有的依赖文件
2. $@ 代表目标文件
3. $< 代表第一个依赖文件
例如:
A:
hello:main.o fun1.o fun2.o
gcc main.o fun1.o fun2.o -o hello
按照上述的自动化变量规则可以写成:
hello:main.o fun1.o fun2.o
gcc $^ -o $@
B:
hello:hello.o
gcc hello.c -o hello
.PHONY:clean
clean:
rm hello hello.o
可以写成:
hello:hello.o
gcc $^ -o $@
.PHONY:clean
clean:
rm hello hello.o
注意:@可以用于取消回显:
hello:hello.o
@gcc hello.c -o hello
.PHONY:clean
clean:
rm hello hello.o
make命令默认在当前目录下寻找名字为makefile或者Makefile的工程文件,当名字不为这两者之一时,可以使用如下方法指定:
make -f 文件名
Makefile中把那些没有任何依赖只有执行动作的目标称为“伪目标”(phony targets)
例如:
.PHONY:clean
clean:
rm hello hello.o
“.PHONY”将“clean”目标声明为伪目标
makeflie中“#”字符后的内容被视作注释