GNU制作空配方而非配方

时间:2016-12-08 14:29:34

标签: makefile gnu rule recipe

查看GNU make manualempty recipe与无配方之间的区别究竟是什么(例如,参见Rules without Recipes or Prerequisites中的一个实例)?更重要的是,何时应该使用/避免这两个食谱中的每一个?

根据我目前的理解,应该始终使用

target: ;

因为有时隐含的规则可能会破坏无规则的目的。

1 个答案:

答案 0 :(得分:4)

给定目标只能有一个食谱。如果您宣布一个空配方,那么您现在已经给出了该配方的目标,并且它不会通过隐式规则进行搜索。此外,如果你试图给同一个目标另一个食谱,那么make会抱怨。

"没有食谱"只是意味着您要为现有目标添加更多先决条件,或者如果您没有列出先决条件,那么您只需告知您这是您感兴趣的目标。但是您&# 39;不要覆盖任何可以在其他地方进行的配方查找。

绝对不应该总是使用其中一种:你使用的那种取决于你想要实现的目标。

当你说击败一个没有规则的目的时,我不明白你的意思所以我无法回应那个......你在尝试什么当你说"没有规则"?

时实现