Makefile GNU make'的语义;s多行变量赋值运算符

Makefile GNU make'的语义;s多行变量赋值运算符,makefile,gnu-make,Makefile,Gnu Make,改编手册中的示例: define reverse = $(2) $(1) endef foo = $(call reverse,a,b) $(info $(foo)) 不打印任何内容。但是,当=运算符从反向的定义中删除时,请打印b a 考虑到手册中的说明,为什么这些行为会有所不同: 如果愿意,可以省略变量赋值运算符。如果 省略,make假设它为'=' Gnu make 3.82中允许赋值运算符,但3.81中不允许赋值运算符。你用的是什么版本的make?我用的是3.81。您是否有一个链接,可

改编手册中的示例:

define reverse =
$(2) $(1)
endef

foo = $(call reverse,a,b)

$(info $(foo))
不打印任何内容。但是,当
=
运算符从
反向
的定义中删除时,请打印
b a

考虑到手册中的说明,为什么这些行为会有所不同:

如果愿意,可以省略变量赋值运算符。如果 省略,make假设它为'='


Gnu make 3.82中允许赋值运算符,但3.81中不允许赋值运算符。你用的是什么版本的make?我用的是3.81。您是否有一个链接,可以链接到一些关于发生了什么变化的信息?我不确定您所说的变化到底是什么意思,但如果您阅读GNU make发行版附带的
新闻
文件,它描述了每个发行版中所有用户可见的变化。您可以在此处看到最新版本:中的新闻文件中说:“现在,‘define’make指令允许在变量名称后使用变量赋值运算符,以允许简单、有条件或附加多行变量赋值。”此外,您阅读的关于变量赋值运算符使用的手册中有一个版本标识符。我希望您看到的是3.82或更高版本。