是什么意思“跳过隐含的规则搜索虚假目标”

时间:2014-02-05 05:47:14

标签: makefile gnu-make

我是Makefiles的新手,正在阅读有关PHONY目标的一些文档。有人可以通过“跳过对虚假目标的隐式规则搜索”解释什么意思。如果我们将PHONY目标声明为默认目标,是否有任何限制?

1 个答案:

答案 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