Variables GNU Make:为什么调用函数可以';不能用于简单扩展的变量$1没有扩展

Variables GNU Make:为什么调用函数可以';不能用于简单扩展的变量$1没有扩展,variables,call,gnu-make,Variables,Call,Gnu Make,例如: define a := abc := $$1 endef $

例如:

define a :=                                                                                                                                                                                                                      
abc := $$1
endef 

$(eval $(call a,b))
变量
abc
不是
b
。据我所知,
a
的值是
abc:=$1
,然后调用将检查
abc:=b


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

一旦通过简单扩展扩展变量,它就再也不会扩展了。这就是
:=
的全部要点。因此,当最初定义变量时,它被设置为静态字符串
abc:=$1
。一旦这样做了,它在一个扩展的上下文中出现多少次就无关紧要了:它实际上不会再改变了。

@madcascient你能帮我吗?提前谢谢