递归调用中的变量赋值

时间:2016-07-28 08:15:24

标签: makefile gnu-make

我有一个简单的Makefile,如下所示:

VAR += 4 5 6

default:
    @echo "$(VAR)"
a:
    VAR="1 2 3" make
b:
    make VAR="1 2 3"

make a按预期工作并打印1 2 3 4 5 6,但make b仅打印1 2 3。我认为这两个变体是相同的。

问题是:为什么会这样?

1 个答案:

答案 0 :(得分:0)

引用GNU make手册:

  

如果使用命令参数设置了变量,那么普通   makefile中的赋值将被忽略。

您可以使用override指令进行更改:

 override VAR += 4 5 6