如果Makefile中有多个相同的目标,它是怎么执行的?
target1: dep1
target1: dep2
cmd2
这种情况下,这两个相同的target1会被合并成
target1: dep1 dep2
cmd2
sample01:
#测试多个相同目标,是如何执行的
all: test
test: a.c a.h
test: a.c
echo "02 target" #flag the second target
echo $^ #print the second target depend
执行结果:
echo a.c a.h
a.c a.h
但如果第一条规则本身也带一个命令的话, makefile就无法合并, 给出警告,并用后面的规则替代前面的规则
target1: dep1
cmd1
target1: dep2
cmd2
最后生成的是, 其实就是后一条替代了前一条,然后给出警告