关于使用分组目标覆盖配方的 Makefile 警告

Makefile warning about overriding recipe with grouped targets

提问人:Timmmm 提问时间:11/17/2023 更新时间:11/17/2023 访问量:19

问:

有关分组目标的 Make 文档提供了以下示例:

foo bar biz &: baz boz
    echo $^ > foo
    echo $^ > bar
    echo $^ > biz

这似乎工作正常,但是如果我添加第二个分组目标:

foo bar biz &: baz boz
    echo $^ > foo
    echo $^ > bar
    echo $^ > biz

foo2 bar2 biz2 &: baz boz
    echo $^ > foo2
    echo $^ > bar2
    echo $^ > biz2

我收到以下警告:

Makefile:7: warning: overriding recipe for target '&'
Makefile:2: warning: ignoring old recipe for target '&'

为什么?

生成文件

评论


答:

-1赞 Timmmm 11/17/2023 #1

啊,这似乎是 Make 中的一个错误。我在 4.2.1 版中收到该警告,但 4.4.90 版没有收到该警告。

评论

1赞 MadScientist 11/17/2023
这绝对不是一个错误。在线手册记录了GNU Make的最新发布版本(显然)。那是版本 4.4.1: ftp.gnu.org/gnu/make/?C=M;O=D 您使用的是 7 年前 2016 年发布的旧版本 4.2.1。此功能是在版本 4.3(2020 年发布)中添加的。您可以在此处找到有关哪个版本中提供了哪些功能的更多信息:git.savannah.gnu.org/cgit/make.git/tree/NEWS?h=4.4.1
1赞 MadScientist 11/17/2023
如果你想阅读特定于你的GNU Make版本的文档,你应该看看你的版本附带的文档:它们应该被提供在你正在使用的任何软件包中。