gpt4 book ai didi

makefile - 匹配任何模式规则

转载 作者:行者123 更新时间:2023-12-04 00:30:18 31 4
gpt4 key购买 nike

我使用的是 GNU Make 3.81 版本。

从下面的示例中,我希望匹配任何 pattern(%:) 必须被打印。而不是 te%: 已执行。

有人可以解释一下,为什么目标“%:”没有运行吗?

这不是匹配所有文件名吗?

生成文件:

all: test
echo $@
%:
echo 1: $@
te%:
echo 2: $@

输出:

echo 2: test
2: test
echo all
all

最佳答案

对于 make 如何处理匹配任何模式规则,有一些特殊的规则;查看documentation .您在这里创建了一个“非终端匹配任何规则”,规则是这样的:

A non-terminal match-anything rule cannot apply to a file name that indicates a specific type of data. A file name indicates a specific type of data if some non-match-anything implicit rule target matches it.

在您的情况下,您有一个与文件名 (test) 匹配的非匹配任何隐式规则目标 (te%),因此是非终端匹配- 任何规则 (%:) 都无法匹配它。

关于makefile - 匹配任何模式规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28986085/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com