2

我正在尝试define在 GNU make 中使用。在这个测试 Makefile 上运行 make 会回显“dummy”:

define FOO =
$$(error foo $(1))
endef

$(eval $(call FOO,bar))

all:
    @echo dummy

如果我删除=,那么它会foo bar按照我的意图出错。

GNU make 手册有所有使用等号形式的定义示例。为什么这对我来说似乎被忽略了?

4

1 回答 1

6

definewith assignment 是在 GNU Make 3.82 中引入的,很可能您使用的是旧版本。

但是,在最近的版本define foo =中与 plain 相同define foo,只需使用后者即可使其与 pre-3.82 版本一起使用。

于 2012-05-27T12:40:02.583 回答