【发布时间】:2017-06-20 04:13:18
【问题描述】:
我正在尝试构建一个 GNU Make Canned Recipe,如下所示:
define this-will-fail
my_var=1
$(info your variable is $(my_var))
endef
$(this-will-fail)
这会导致错误*** missing separator. Stop.
但是,以下操作按预期工作:
define why-does-this-work
$(eval my_var=1)
$(info your variable is $(my_var))
endef
$(why-does-this-work)
通过打印your variable is 1。
我正在查看AOSP's build system,并且经常看到eval 与define 配对使用。这两项是什么关系,为什么我在使用define时不能“正常”创建变量?
【问题讨论】:
-
您链接到的罐头食谱文档谈论的是 shell sn-ps,而不是 Make (事实上,Make 上下文中的“recipe”一词始终意味着“规则的外壳代码部分”)。
-
@MichaelLivshin 谢谢,这是我消除所有困惑所需的花絮。如果您想将其发布为“答案”,我很乐意接受
标签: android makefile gnu-make recipe