0

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

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

$> make -f strsearch.mk

代码:BBROY_OF_GREAT_BRITAIN_HAD_A_GREAT_WIFE

莫尔斯=英国的布罗伊有一位好妻子

**make:莫尔斯:找不到命令

制作:* [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))

4

1 回答 1

1

您的变量声明位于错误的位置或形式:

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

  • 要么使其成为目标块之外的全局变量
  • 或者使用 shell 和 eval 来设置变量值。请参阅已接受的答案以了解如何解决此问题:在规则执行时定义生成变量
  • 第三种选择是将变量定义为一种先决条件,然后在评估依赖关系时分配。
于 2015-11-06T10:14:28.943 回答