GNU Make:为什么不能在简单的扩展变量上使用call函数? $ 1未展开

问题描述 投票:0回答:1

示例:

define a :=                                                                                                                                                                                                                      
abc := $$1
endef 

$(eval $(call a,b))

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

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

variables call gnu-make
1个回答
0
投票

一旦变量通过简单的扩展进行扩展,就不会再扩展。这就是:=的全部内容。因此,最初定义变量时,将其设置为静态字符串abc := $1。一旦完成,在扩展的上下文中出现多少次并不重要:它实际上不会再次更改。

© www.soinside.com 2019 - 2024. All rights reserved.