什么是?=在Makefile中

时间:2014-07-16 09:36:42

标签: linux linux-kernel makefile

KDIR ?= $(shell uname -r)

?=是什么意思?

我已理解Stack Overflow中另一个线程中:=+==之间的区别,但无法找到?=的解释。

2 个答案:

答案 0 :(得分:78)

?=表示仅在KDIR变量未设置/没有值时才设置。{/ p>

例如:

KDIR ?= "foo"
KDIR ?= "bar"

test:
    echo $(KDIR)

会打印" foo"

答案 1 :(得分:5)

感谢Simon和R.T.他们快速而正确的回应。

另外,我找到了GNU手册,详细解释了所有内容: http://www.gnu.org/software/make/manual/html_node/Setting.html