如何在配方中使用多行变量?
文件名:多行变量
define foo =
echo welcome
endef
export foo
all:
echo $(foo)
我得到以下输出。但我希望打印“欢迎”字样。
$ make -f multiple-line-variable
echo
SunEric的答案没有正确解释正在发生的事情。无论是否添加,@
都与您没有看到“欢迎”字样的原因完全相关。
您的原始示例未按预期运行的原因是因为您正在使用最新的GNU make版本(当前为GNU make 4.0)阅读GNU make手册,但可能使用的是在线手册,但是您使用的是旧版本版本的GNU make。这不是一个好主意,因为在您使用的GNU版本中不存在手册中讨论的功能。
在这种情况下,在名称之后添加赋值运算符的变量定义样式:
define foo =
...
在GNU make 3.82之前不可用。在此之前的make版本中,此语法定义了一个字面名为的变量foo =
。$(foo)
由于foo
未定义变量,因此打印不会显示任何内容。
GNU make提供了其用户手册作为发行版的一部分:您应该始终阅读所使用的GNU版本附带的手册版本,而不是其他版本。
此外,您不需要export
的foo
,因为你使用使得语法在你的食谱所以外壳永远不会看到的任何引用两种方法变量,foo
变量。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句