target:prerequisites
command
目标:依赖
命令
注意:命令需要以【TAB】键开始 不能使用空格键移至目标位处
Makefile最终只有一个目标,其他目标都是被最终目标连带出来的
定义makefile时,第一条规则中的目标将被认为是最终目标
当文件名既不为Makefile又不为makefile时,使用:
make -f 文件名 指定目标
伪目标:makefile中把没有任何依赖只有执行动作的目标称为伪目标
例:
.PHONY:clean
clean:
rm -f hello main.o
“.PHONY”把“clean”目标声明为伪目标
变量:
例:
obj=main.o func1.o func2.o func3.o
hello:S(obj) ——引用变量
gcc S(obj) -o hello ——引用变量
makefile中默认自带的变量
S^:代表所有的依赖文件
S@:代表目标文件
S<:代表第一个依赖文件
例:
hello:main.o func1.o func2.o func3.o
gcc main.o func1.o func2.o func3.o -o hello
相当于:
hello:main.o func1.o func2.o func3.o
gcc S^ -o S@
其他符号的含义
#:表示注释
@:表示取消回显