如何在我的makefile中使用target变量?
当我遵循LinuxDevelopC书籍的示例时,我在我的如何在我的makefile中使用target变量?,makefile,target,Makefile,Target,当我遵循LinuxDevelopC书籍的示例时,我在我的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: *** e
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.
如何将函数的值返回到目标中的“结果”中?您的第一个赋值是正确的。第二个赋值错误地使用了变量插值语法。它是
变量:=value
不是$(变量):=value
;后者会尝试使用variable
的值作为变量的名称来分配值,但在您的情况下,它是空的
在配方中分配变量也是错误的;配方中的内容应该是tab缩进的shell命令
result := $(subst a, A, how are you)
all:
echo "the result is: $(result)"
.PHONY: all
或者甚至可以内联函数调用:
echo "the result is: $(subst a,A,how are you)"
仅仅在一个菜谱的持续时间内分配一个变量并非完全不可能,但我猜您仍在尝试学习基本语法
可能还会注意到:=
和=
之间的区别。在GNU Make中应首选前者,除非您特别希望Make
在每次扩展值时评估赋值