在我的 makefile 中,我有一个变量 FOO
:
FOO = /path/to/bar
在Makefile调用期间是否可能覆盖此变量?例如以下内容:
FOO=/path/to/foo make all
在我的 makefile 中,我有一个变量 FOO
:
FOO = /path/to/bar
在Makefile调用期间是否可能覆盖此变量?例如以下内容:
FOO=/path/to/foo make all
将它们作为参数指定给make
,例如make FOO=/path/to/foo all
。
$ cat Makefile
Foo = asdf
all:
echo $(Foo)
$ make all
echo asdf
asdf
$ make Foo=bar all
echo bar
bar
正如Thirty Two上校所说,您可以在命令行中覆盖在makefile中设置的变量。
如果您希望将其作为要持久设置的变量,则可以使用?=
赋值,然后该变量的环境值将被使用。
你也可以简单地使用?=
运算符:
$ cat Makefile
Foo ?= asdf
all:
echo $(Foo)
$ make all
echo asdf
asdf
$ Foo=bar make all
echo bar
bar
=
/:=
,并使用 make foo=bar
进行覆盖。 - HolyBlackCat