【问题标题】:Can '%' in a pattern-rule match an EMPTY string, in a makefile?模式规则中的 '%' 可以匹配生成文件中的 EMPTY 字符串吗?
【发布时间】:2015-08-18 09:23:03
【问题描述】:

来自docs

例如,%.c 作为模式匹配任何以 .cs.%.c 作为模式匹配任何以 s. 开头的文件名, 以.c 结尾并且至少有五个字符长。 (必须在 至少一个字符匹配%) % 的子字符串 匹配被称为“茎”。

D/all:

al%l;
    echo '$@'

跑步,我明白了:

echo 'D/all'
D/all

鉴于上面的报价:

必须至少有一个字符才能匹配%

目标all如何匹配模式al%l(这清楚地暗示%匹配一个字符串)。

【问题讨论】:

    标签: makefile


    【解决方案1】:

    看起来手册真正想说的是“必须一个词干”。那里有。主干是D/。您可以通过将echo '$*' 添加到al%l 目标来查看。

    【讨论】:

    • 如果有的话,它表明 Make 在检查 % 是否匹配任何非空字符串时不够迂腐,因为它允许任何“stem”来解释这个匹配。因此,它肯定解释了“它是如何发生的”。但应该是这样吗?这是故意的吗?我对此表示怀疑。
    • 这要么是一个错误(即您关于不够迂腐的评论),要么是故意的并且手册不够明确。在任何一种情况下,发送到 gnu-make 邮件列表的电子邮件和/或针对该项目提交的错误都可能比在此处发布更好的结果。
    猜你喜欢
    • 2020-02-15
    • 2012-06-06
    • 2019-04-04
    • 1970-01-01
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多