多目标:
当多目标同时依赖相同的依赖目标时使用,并尽量使用 $@,它表示目标的集合。但是由于生成的多份依赖和规则,所以$@实际表示每个依赖相应的目标。
如
静态模式:
静态模式和多目标类似,可以生成多份的依赖和规则,$@和$^分别表示每份依赖相应的目标和依赖目标。
如:
OBJS=a.o b.o
$(OBJS): %.o: %c
echo $@ $^
就相当于:
a.o : c.o
echo a.o c.o
b.o: c.o
echo b.o c.o
静态模式可以和多目标一起使用,更加灵活的生成多份依赖和规则。