我执行目标时遇到上述错误。我用封闭支架终止了foreach,但它仍然存在。
$(addprefix c_lr, $(RLRG_LRGS)):c_lr%:
$(foreach i, $(days), \
if [ "$(day)" = "$(i)" ] ; then \
$(ECHO) This is a valid . ; \
fi ; \
)
答案 0 :(得分:2)
在第一个配方行上,反斜杠后面有一个空格:
$(foreach i, $(days), \
^---space here
如果换行符直接在反斜杠之后,反斜杠只会转义换行符。如果在反斜杠之后有空格,那么它不是转义的换行符,它只是一个反斜杠后跟一个空格。
我强烈建议使用编辑器(例如GNU Emacs),它具有良好的Makefile编辑模式,能够突出显示可疑的空白。这样可以很容易地找到这样的错误。