2014-09-24 64 views
0

當我執行我的目標時,出現以上錯誤。我用一個右大括號終止了foreach,但它仍然存在。Makefile:***未終止調用函數`foreach':缺少')'。 Makefile

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

您確定您使用的是TAB而不是空格嗎? – 2014-09-24 04:58:44

+0

是的,我只使用標籤 – nam 2014-09-24 05:00:33

回答

2

在第一配方線,有反斜槓後的空間:

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

如果換行符反斜槓後直接來反斜線僅逸出換行符。如果反斜槓後有一個空格,那麼它不是一個轉義的換行符,它只是一個反斜槓後面跟一個空格。

我強烈建議使用具有良好的Makefile編輯模式的編輯器(例如GNU Emacs),以突出可疑的空白。這可以很容易地發現那樣的錯誤。