[makefile]makefile中 '=', ':=', '?=', '+='的区别

1. =

最基本的赋值。

需要注意的是:makefile全部展开之后,才会最终确定变量的值,如下例:

val_1 = abc
val_2 = $(val_1)
val_1 = def

上例中,val_2的值是def,而不是abc


2. :=

同样是赋值操作,与‘=’赋值不同的是,':=',赋值的结果取决与在makefile中的位置,如下例:

val_1 := abc
val_2 := $(val_1)
val_1 := def

上例中,val_2的值是abc,即取决了makefile中的位置


3. ?=

首先判断变量是否被赋值过,如果没有被赋值过,那么赋予‘?=’后面的值;如果已经被赋值过,那么不再重新赋值,如下例:

val_1 = abc
val_1 ?= def

上例中val_1的值为abc

val_1 ?= def
上例中val_1的值为def

4. +=

添加等号后面的值,如下例:

val_1 = abc
val_1 += def
上例中,val_1的值为"abc def"
val_1 += abc
上例中,val_1的值为"abc"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值