【问题标题】:Make rule without recipe but with prerequisites?制定没有配方但有先决条件的规则?
【发布时间】:2016-08-13 22:56:21
【问题描述】:

是否可以创建一个Makefile,它有一个包罗万象的规则(即%: ...),有先决条件但没有正文?

这是我遇到的问题的一个示例:

.SUFFIXES:

%: patches/% downloads/%

patches/%:
    @echo $@

downloads/%: patches/%
    @echo $@
$ make patches/latest
patches/latest
$ make downloads/latest
downloads/latest
$ make latest
make: *** No rule to make target `latest'.  Stop.

我可以通过在包罗万象的规则中添加正文来“解决”这个问题:

.SUFFIXES:

%: patches/% downloads/%
    @echo $@

patches/%:
    @echo $@

downloads/%: patches/%
    @echo $@
$ make patches/latest
patches/latest
$ make downloads/latest
downloads/latest
$ make latest
patches/latest
downloads/latest
latest

是否有可能在没有包罗万象的规则的情况下做到这一点?

我发现了一个类似的问题here,但从未真正正确回答(即可能的解决方案)。

【问题讨论】:

    标签: makefile


    【解决方案1】:

    正如链接的问题所指出的那样,没有配方的模式规则cancel pre-existing rules

    给规则一个空的主体:

    %: patches/% downloads/% ;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-06
      相关资源
      最近更新 更多