【问题标题】:GNU Make: why call function can't be used on simply expanded variables? $1 is not expandedGNU Make:为什么调用函数不能用于简单的扩展变量? $1 未展开
【发布时间】:2020-01-04 08:41:21
【问题描述】:

示例:

define a :=                                                                                                                                                                                                                      
abc := $$1
endef 

$(eval $(call a,b))

变量abc 不是b。据我所知,a 的值是abc := $1,然后调用将扩展到abc := b

为什么调用函数不能用于简单的扩展变量,这在 GNU Make 手册中没有提到。

【问题讨论】:

  • @MadScientist 你能帮帮我吗?谢谢提前

标签: variables call gnu-make


【解决方案1】:

一旦通过简单扩展扩展变量,它就永远不会再次扩展。这就是:= 的全部意义所在。因此,最初定义变量时,它被设置为静态字符串abc := $1。一旦完成,它在扩展上下文中出现多少次都没有关系:它实际上不会再次改变。

【讨论】:

    猜你喜欢
    • 2023-01-23
    • 2011-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-01
    • 2011-12-09
    相关资源
    最近更新 更多