我是Makefiles的新手,正在阅读有关PHONY目标的一些文档。有人可以通过“跳过对虚假目标的隐式规则搜索”解释什么意思。如果我们将PHONY目标声明为默认目标,是否有任何限制?
答案 0 :(得分:1)
这意味着如果目标被标记为.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
。