是否可以分配一个也从命令行传递的变量?
我尝试了以下Makefile:
testvar := newassign
.PHONY: all
all:
@echo $(testvar)
如果我执行make
,输出是预期的newassign
。但是,如果我执行make testvar=asd
,输出是asd
,而我希望这也是newassign
。
我使用GNU Make 4.1。
这显然是一个故意的特征。命令行选项始终优先于Makefile中的赋值。如果要强制分配,可以使用override
。
override testvar := newassign
.PHONY: all
all:
@echo $(testvar)