$@ 表示目标文件
$^ 表示所有的依赖文件
$< 表示第一个依赖文件
$? 表示比目标还要新的依赖文件列表
%.o:表示所用的.o文件
%.c:表示所有的.c文件
==============================================================
例, Makefile:
objs := a.o b.otest:$(objs)gcc -o test $^# .a.o.d .b.o.ddep_files := $(foreach f,$(objs), .$(f).d)dep_files := $(wildcard $(dep_files))ifneq ($(dep_files),)include $(dep_files)endif%.o : %.cgcc -Wp,-MD,.$@.d -c -o $@ $<clean:rm *.o test
