GNU Make手册说,选择了最“具体”的隐式规则,这是一件好事。除了......如果有一条规则不需要隐含的先决条件,即使它更“一般”,也会选择它。参见:
> touch existing
> cat Makefile
%.o: existing
@echo general
foobar%.o: foobar%.i
@echo specific
foobar%.i: ;
> rm foobar0.i
> make -r foobar0.o
general
> touch foobar0.i
> make -r foobar0.o
specific
恕我直言,应始终选择最具体的规则,无论是否有0个隐含的先决条件,尤其是这些先决条件是否已经存在。但我不想在这里问“为什么”。
相反,有人可以向我建议,如何强迫所需的行为。无论如何,我总是想要最具体的规则。有没有办法强迫它?答案 0 :(得分:0)
%.o: %.dummy
@echo general
%.dummy: ;
我只是不喜欢这种事情。是否有一种不那么丑陋的方式。