Makefile赋值变量从命令行传递

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

是否可以分配一个也从命令行传递的变量?

我尝试了以下Makefile:

testvar := newassign

.PHONY: all
all:
    @echo $(testvar)

如果我执行make,输出是预期的newassign。但是,如果我执行make testvar=asd,输出是asd,而我希望这也是newassign

我使用GNU Make 4.1。

makefile gnu-make
1个回答
1
投票

这显然是一个故意的特征。命令行选项始终优先于Makefile中的赋值。如果要强制分配,可以使用override

override testvar := newassign

.PHONY: all
all:
    @echo $(testvar)
© www.soinside.com 2019 - 2024. All rights reserved.