Makefile:***未终止调用函数`foreach':缺少`)'。 Makefile文件

时间:2014-09-24 04:53:22

标签: makefile

我执行目标时遇到上述错误。我用封闭支架终止了foreach,但它仍然存在。

$(addprefix c_lr, $(RLRG_LRGS)):c_lr%:
        $(foreach i, $(days), \ 
        if [ "$(day)" = "$(i)" ] ; then \
        $(ECHO) This is a valid . ; \
        fi ; \
        )

1 个答案:

答案 0 :(得分:2)

在第一个配方行上,反斜杠后面有一个空格:

        $(foreach i, $(days), \ 
                               ^---space here

如果换行符直接在反斜杠之后,反斜杠只会转义换行符。如果在反斜杠之后有空格,那么它不是转义的换行符,它只是一个反斜杠后跟一个空格。

我强烈建议使用编辑器(例如GNU Emacs),它具有良好的Makefile编辑模式,能够突出显示可疑的空白。这样可以很容易地找到这样的错误。