如何在我的makefile中使用target的变量?

问题描述 投票:0回答:2

当我按照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.

如何在目标中将函数的值返回到“结果”?

makefile target
2个回答
0
投票
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.

0
投票

您的第一个作业是正确的。您的第二个分配错误地使用了变量插值语法。它是variable := value而不是$(variable) := value;后者将尝试使用variablevalue作为变量的名称,以将值分配给该变量,但在您的情况下,该变量为空。

在配方中分配变量也是错误的;食谱中的内容应使用制表符缩进的shell命令。

result:= $(subst a, A, how are you)

all:
        echo  "the result is: $(result)"

.PHONY: all
© www.soinside.com 2019 - 2024. All rights reserved.