从makefile覆盖变量
在我的makefile中有一个变量从makefile覆盖变量,makefile,Makefile,在我的makefile中有一个变量FOO: FOO = /path/to/bar 在makefile调用期间是否可以覆盖此变量?像下面这样的事情: FOO=/path/to/foo make all 在指定目标之前,将它们指定为Var=Value,如makefoo=/path/to/fooall $ cat Makefile Foo = asdf all: echo $(Foo) $ make all echo asdf asdf $ make Foo=bar all echo
FOO
:
FOO = /path/to/bar
在makefile调用期间是否可以覆盖此变量?像下面这样的事情:
FOO=/path/to/foo make all
在指定目标之前,将它们指定为
Var=Value
,如makefoo=/path/to/fooall
$ cat Makefile
Foo = asdf
all:
echo $(Foo)
$ make all
echo asdf
asdf
$ make Foo=bar all
echo bar
bar
GNU make手册的章节中指定了变量获取赋值的方式 变量可以通过几种不同的方式获取值:
- 可以在运行make时指定替代值。看
- 可以使用赋值(请参阅)或逐字定义(请参阅)在makefile中指定值
- 环境中的变量成为make变量。看
- 为每个规则提供几个自动变量的新值。每一个都有一个常规用途。看
- 几个变量具有恒定的初始值。看
如果希望这是一个要持久设置的变量,也可以使用
?=
赋值,然后使用该变量的环境值。相对于命令行上目标名称的位置无关紧要。答案应该是这样的,简单明了,直截了当