foreach - Makefile $(eval $(call)) 函数
问题描述
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())
然后它运行良好
解决方案
makeeval
函数将您提供的文本评估为 makefile(需要 makefile sytnax)。
该文本@echo this is a function
不是生成文件。
换句话说,如果您创建一个 Makefile 并将其放入其中:
@echo this is a function
(本身,没有别的)并且你make
在那个makefile上运行,你会得到同样missing separator
的错误。
推荐阅读
- android - 在ListView里面flutter两个ListView.builder
- rasa - rasa shell 命令像 rasa train nlu 一样工作
- javascript - js bind() 函数如何详细工作?
- node.js - 使用nodejs在mongodb中删除对象形式的嵌套数组
- javascript - 在javascript中获取值json到字符串的函数
- azure-devops - Azure Pipelines - 有没有办法查看文件夹结构?
- python - AWS lambda无缘无故返回基于python的简单返回json代码的内部服务器错误
- java - 使用 Java Spring JPA 为 liquibase 中的表名添加前缀
- python - Python字符串按特定字符拆分
- php - Php,依赖注入,如何替换对象(用于测试)?