【发布时间】:2015-05-18 21:24:56
【问题描述】:
我有这个makefile:
.PHONY: all
all: foo.o
makefile: ;
%.inc:
echo INC
touch $@
%.o: bar.inc
echo O
touch $@
%.o:
FAIL
我希望它使用第一个 %.o 规则,创建 bar.inc 作为先决条件,然后创建 foo.o。相反,它使用最后一条规则,我得到了这个:
FAIL
make: FAIL: Command not found
make: *** [foo.o] Error 127
如果我将%.inc 更改为bar.inc 或将%.o 更改为foo.o,它工作正常。
documentation 说
为了应用模式规则,其目标模式必须与所考虑的文件名匹配,并且其所有先决条件(模式替换后)必须命名存在或可以制作的文件。
模式规则%.inc 算不算“可以制作”?我正在使用 GNU Make 3.81。
【问题讨论】: