KDIR ?= $(shell uname -r)
?=
的含义是什么?我已经从 Stack Overflow 的另一个主题中了解了 :=
、+=
和 =
的区别,但找不到关于 ?=
的解释。
KDIR ?= $(shell uname -r)
?=
的含义是什么?我已经从 Stack Overflow 的另一个主题中了解了 :=
、+=
和 =
的区别,但找不到关于 ?=
的解释。
?=
表示只在KDIR
变量未设置或没赋值时才设置它。KDIR ?= "foo"
KDIR ?= "bar"
test:
echo $(KDIR)
将输出"foo"
GNU手册:http://www.gnu.org/software/make/manual/html_node/Setting.html
感谢 Simon 和 R.T. 快速并正确的回答。
同时,我找到了GNU手册,它详细解释了一切: http://www.gnu.org/software/make/manual/html_node/Setting.html
?=
可以用于将默认/回退值应用于变量,它可能允许在环境中设置KDIR
。 - Simon?=
符号。 - CMCDragonkai