我是Makefiles的新手,并且正在阅读有关Phony Targerts的一些文档。是否可以通过"跳过隐式规则搜索假冒目标"来解释意味着什么。如果我们宣布一个假目标为默认目标,是否有限制?
这意味着如果目标标记为 .PHONY
,则必须是明确的规则,即
a.o: a.c
$(CC) -o $@ -c $<
而不是隐式规则,例如模式规则或后缀规则。例如,请考虑以下makefile:
.PHONY: a.o
all: a.o b.o
%.o: %.c
$(CC) -o $@ -c $<
调用make
将执行以下操作:
$ make
cc -o b.o -c b.c
$
请注意,仅编译b.c
,而不是a.c
。