生成文件 $(eval $(call)) 函数
Makefile $(eval $(call)) function
makefile 中的简单代码
define fun
@echo this is function
endef
78 all:
79 $(foreach objdir, $(OBJECTDIRS), $(eval $(call fun)))
错误消息是:
Makefile:79:* 缺少分隔符。停止。**
注意:我已经检查了 $(OBJECTDIRS) 不为空并且 $(oobjdir) 也是
如果我将代码更改为流畅的线条:
define fun
@echo this is function
endef
all:
$(call fun())
那就运行好
make eval
函数评估您提供的文本 作为 makefile(期望 makefile sytnax)。
文本 @echo this is a function
不是生成文件。
换句话说,如果您创建一个 Makefile 并将文本放入其中:
@echo this is a function
(就其本身而言,没有别的)和你 运行 make
在那个 makefile 上,你会得到同样的 missing separator
错误。
makefile 中的简单代码
define fun
@echo this is function
endef
78 all:
79 $(foreach objdir, $(OBJECTDIRS), $(eval $(call fun)))
错误消息是: Makefile:79:* 缺少分隔符。停止。**
注意:我已经检查了 $(OBJECTDIRS) 不为空并且 $(oobjdir) 也是
如果我将代码更改为流畅的线条:
define fun
@echo this is function
endef
all:
$(call fun())
那就运行好
make eval
函数评估您提供的文本 作为 makefile(期望 makefile sytnax)。
文本 @echo this is a function
不是生成文件。
换句话说,如果您创建一个 Makefile 并将文本放入其中:
@echo this is a function
(就其本身而言,没有别的)和你 运行 make
在那个 makefile 上,你会得到同样的 missing separator
错误。