返回错误127

时间:2015-11-06 09:59:50

标签: filter makefile subst

尝试在对变量执行subst时匹配特定字符串;替换是好的,但在尝试匹配make返回错误127时。

有谁知道这里发生了什么?为什么make应该返回错误?

  

$> make -f strsearch.mk

     

代码:BBROY_OF_GREAT_BRITAIN_HAD_A_GREAT_WIFE

     

MORSE =大不列颠哥伦比亚的大黄蜂有一个伟大的妻子

     

** make: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))

1 个答案:

答案 0 :(得分:1)

您的变量声明位置错误:

您使用的表单用于全局分配,不能位于目标块内。

  • 使其成为目标区块之外的全局变量
  • 或使用shell和eval设置变量值。请参阅接受的答案,了解如何解决此问题:Define make variable at rule execution time
  • 第三个选项是将变量定义为排序先决条件,然后在评估依赖关系时进行分配。