1,
#为注释
第一个目标是最终目标
目标文件:依赖文件
【tab】[commond]
#伪目标
.PHONY:
eg:
out:main.o
gcc main.o -o out#链接
main.o:main.s
gcc -c main.s -o main.o#汇编
main.s:main.i
gcc -S main.i -o main.s#编译
main.i:main.c
gcc -E main.c -o main.i#预编译
.PHONY:#伪对象
clear:
rm -rf main.o main.i main.s
clearall:
rm -rf main.o main.i main.s out
2
变量=[替换] +=(追加) :=(常量)
OBJ=out
FILE=main.c
CC:=gcc
$(OBJ):$(FILE)
$(CC) $(FILE) -o $(OBJ)
3隐含规则
%.c %.o任意的.c文件生成相对应的.o文件
*.c *.o所有.c文件生成一个.o文件
%.c:%.o
$(CC) -c %.c -o %.o
4,通配符
$@所有的目标文件; $^所有依赖文件; $<所有依赖文件的第一个文件