# 第一层:
# 第一个目标文件使我的最终目标!!!递归
# 伪目标: .PHONY
# rm -rf hello.o hell.S hello.i hello
test : test.o
gcc test.o - o test
.PHNOY:
clean:
rm -rf hello.o hell.S hello.i hello
第二层: 变量 = (替换) += (追加) := (恒等于)常量
TAR = test
cc := gcc
OBJ = a.o b.o main.o
$(TAR):$(OBJ)
$(CC) $(OBJ) -o $(TAR)
第三层:隐含规则 %.c %.o 任意的 .c 或者.o *.c *.o 所有的.c .o
$(TAR):$(OBJ)
$(CC) $(OBJ) -o $(TAR)
%.o : %.c
$(CC) -C %.c -o %.o
第四层:通配符 $^ 所有的依赖文件 $@ 所有的目标文件 $<所有的依赖文件的第一个文件
$(TAR):$(OBJ)
$(CC) $^ -o $@
%.o : %.c
$(CC) -C $^ -o $@
案例
TAR = test
cc := gcc
OBJ = a.o b.o main.oRM = rm -rf
$(TAR):$(OBJ)
$(cc) $^ -o $@
%.o :%.c
$(cc) -c $^ -o $@
.PHNOY:
cleanall:
RM $(OBJ) $(TAR)
clean:
RM $(OBJ)