2015-11-06 54 views
0

我試圖匹配特定的字符串後做一個變量subst;替代是好的,但試圖匹配讓返回錯誤127.使返回錯誤127

有沒有人知道這是怎麼回事?爲什麼應該返回錯誤?

$>讓-f strsearch.mk

CODE:BBROY_OF_GREAT_BRITAIN_HAD_A_GREAT_WIFE

大不列顛莫爾斯= BBROY有一個偉大的妻子

**化妝:MORSE:命令未找到

品牌:* [search_new]錯誤127

這裏是makefile文件的片斷:

VAR1 := BBROY_OF_GREAT_BRITAIN_HAD_A_GREAT_WIFE

search_new: @echo CODE : $(VAR1) MORSE = $(subst _, , $(VAR1)) @echo word count : ($words $(MORSE)) @echo After substitution Britain matches: $(filter %BRITAIN%, $(MORSE))

+0

這是一個有效的,很好的描述(但壞標題)的問題。我不太瞭解downvote。 – planetmaker

回答

1

你的變量聲明是在錯誤的地方或形式:

您使用的形式是全球分配,不能在目標塊內。

  • 要麼使其成爲目標塊
  • 之外的全局變量或者使用shell和eval設置變量值。請參閱接受的答案以解決此問題:Define make variable at rule execution time
  • 第三個選項是將該變量定義爲在評估依賴關係時指定的排序先決條件。
+0

感謝@planetmaker,eval選項的工作;能夠克服make報告的錯誤。 – Ramu