Makefile 为什么可以';我使用'=';在GNU生成文件中定义之后?医生建议我可以
我试图在GNU make中使用Makefile 为什么可以';我使用'=';在GNU生成文件中定义之后?医生建议我可以,makefile,gnu-make,Makefile,Gnu Make,我试图在GNU make中使用定义。在此测试生成文件上运行make时会回显“dummy”: 如果我删除=,则它会按照我的预期使用foo-bar出错 GNU make手册中有所有使用等号形式定义的示例。为什么我似乎忽略了这一点?GNU Make 3.82中引入了带赋值的定义,很可能您使用的是旧版本 但是,在最新版本中,define foo=与普通的define foo相同,只需使用后者即可在3.82之前的版本中使用 define FOO = $$(error foo $(1)) endef $(
定义。在此测试生成文件上运行make时会回显“dummy”:
如果我删除=
,则它会按照我的预期使用foo-bar
出错
GNU make手册中有所有使用等号形式定义的示例。为什么我似乎忽略了这一点?GNU Make 3.82中引入了带赋值的定义,很可能您使用的是旧版本
但是,在最新版本中,define foo=
与普通的define foo
相同,只需使用后者即可在3.82之前的版本中使用
define FOO =
$$(error foo $(1))
endef
$(eval $(call FOO,bar))
all:
@echo dummy