0

在这个例子中:

生成文件:

eat_pie: pie
    rm pie

eat_%: %
    rm $*

终端:

$ make eat_pie
make: *** No rule to make target `pie', needed by `eat_pie'.  Stop.

$ make eat_cake
make: *** No rule to make target `eat_cake'.  Stop.

为什么不让eat_cake输出目标蛋糕丢失?

GNU Make 手册指出:

通配符扩展由 make 在目标和先决条件中自动执行。

4

1 回答 1

2

很不清楚你在问什么。通配符替换在给定示例中有效(除非目标被声明为假 - 通配符不会扩展为假)。您的问题是您的“吃”规则取决于文件的存在。您没有“pie”或“cake”文件,并且不知道如何构建它们(因为没有这样做的规则),这就是错误消息所说的。

于 2013-11-08T11:29:53.593 回答