当我按照Linux开发C书的示例在makefile
中写目标。以下是我的makefile
的缩写:
result:=
all :
$(result) = $(subst a, A, how are you)
echo -n "the result is :"
echo $(result)
.PHONY: all
在外壳中,
it@ubuntu:~/luke/c_test$ make -s all
makefile:5: *** empty variable name. Stop.
如何在目标中将函数的值返回到“结果”?
result:=
all :
result := $(subst a, A, how are you)
echo -n "the result is :"
echo $(result)
.PHONY: all
我尝试编辑,但是外壳出现如下错误:
it@ubuntu:~/luke/c_test$ make -s all
makefile:7: *** recipe commences before first target. Stop.
您的第一个作业是正确的。您的第二个分配错误地使用了变量插值语法。它是variable := value
而不是$(variable) := value
;后者将尝试使用variable
的value作为变量的名称,以将值分配给该变量,但在您的情况下,该变量为空。
在配方中分配变量也是错误的;食谱中的内容应使用制表符缩进的shell命令。
result:= $(subst a, A, how are you)
all:
echo "the result is: $(result)"
.PHONY: all