makefile中的可选依赖项

时间:2016-08-10 14:25:51

标签: makefile gnu-make

我试图在GNU make中获得可选的依赖项。我试图使用$(通配符)但是得到了不期望的输出:

test.mk:

a:
        @echo "a"
b: $(wildcard a)
        @echo "b"
        @touch a

预期产出:

$ make -f ./test.mk b
b
$ make -f ./test.mk b
a
b

实际输出:

$ make -f ./test.mk b
b
$ make -f ./test.mk b
b

我对$(通配符)缺少什么?

1 个答案:

答案 0 :(得分:1)

您不会错过$(wildcard ...)的任何内容。就是这样 第二次运行a时,文件make b已经存在,所以 make不需要制作它,因此不会运行其配方。

如果你添加:

.PHONY: a

到makefile,如果需要,将生成目标a,无论是否存在这样的文件 并给出你期望的行为,但从你的帖子中不清楚这是否能真正实现你的目标。