我有一个简单的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
。我认为这两个变体是相同的。
问题是:为什么会这样?
答案 0 :(得分:0)
引用GNU make手册:
如果使用命令参数设置了变量,那么普通 makefile中的赋值将被忽略。
您可以使用override
指令进行更改:
override VAR += 4 5 6