a=10
b=10
b:
sum=($a+$b)
@echo hello
@echo @sum
我想编写一个计算两个变量之和的生成文件,但它不起作用:我可以知道我在哪里犯了错误吗?
make 文件是如何执行的,默认目标是什么?
我可以更改 makefile 中的默认目标名称吗?
a=10
b=10
b:
sum=($a+$b)
@echo hello
@echo @sum
我想编写一个计算两个变量之和的生成文件,但它不起作用:我可以知道我在哪里犯了错误吗?
make 文件是如何执行的,默认目标是什么?
我可以更改 makefile 中的默认目标名称吗?
您必须为此使用 shell 语法。Make 本身不提供任何数学函数。另请注意,make 配方中的每个逻辑行都在单独的 shell 中运行,这意味着如果您在一行中分配一个值并在下一行中使用它,则该值将丢失(因为设置该值的 shell 退出并开始一个新的)。
所以,做这样的事情:
a = 10
b = 10
b:
@sum=`expr $(a) + $(b)`; echo $$sum
默认情况下,makefile 运行第一个目标。要运行特定目标,您可以在命令行中输入所需目标的名称,如下所示make <targetname>
:
这是makefile的一个例子
a=10
b=10
sum=$(shell expr $(1) + $(2))
compute_sum:
@echo $(a)+$(b)=$(call sum,$(a),$(b))
@echo $(sum_a_b)
它定义了一个函数sum
来计算 2 个参数的总和。请注意,+
标志周围的空间是必需的。
默认目标是compute_sum
,它sum
使用$(call sum,<arg1>,<arg2>)
.
.
当然,您可以直接使用 sum 作为变量,而无需使用函数:
a=10
b=10
sum=$(shell expr $(a) + $(b))