查看Defining multi-line variables的Gnu make 4.2手册,我们看到一个示例:
define two-lines =
echo foo
echo $(bar)
endef
和评论
define指令在同一行后跟要定义的变量的名称和(可选)赋值运算符,仅此而已。
我曾多次加入可选的=
,然后在使用Gnu make 3.81在另一台机器上构建时遇到(通常是细微的)问题。当然,运行3.81时不应该使用4.2语法!但是我发现这是一个容易犯的错误,特别是因为URL和1的内容都没有指出要记录的版本(您必须单击Up
2个级别才能看到该版本)。 / p>
那么,回到我的问题:为什么引入了可选的=
?
答案 0 :(得分:2)
它允许您使用所有不同的赋值运算符创建宏。特别是它允许您使用:
define foo :=
获取简单扩展的变量,或
define foo ?=
获取可选分配的变量等。在此过程中,您可以使用(冗余)
define foo =
也是。