2015-11-06 84 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