【Android构建篇】MakeFile语法中 := 和 = 的区别

使用:=

在Makefile中使用 := 赋值方式定义变量时,如果该变量定义中包含了其他变量的引用,那么这些引用所表示的值将在变量定义时即被展开。也就是说,子变量会被立即展开,并赋值给父变量。

例如,在 Makefile 中有以下的变量定义:

FOO := A123
BAR := $(FOO) B456

FOO := C789

在这里,变量BAR的值是$(FOO) B456,其中 $(FOO) 表示一个子变量,即它的值是变量FOO的值。因为变量FOO被赋值为A123,所以 BAR 的值为:

A123 B456

此时再将FOO重新赋值为C789,不会影响BAR的值,因为变量BAR已经在 Makefile 中被定义好。

使用 =

:= 不同的是,使用 = 赋值符号赋值的变量,变量中的子变量引用会在被使用时才被展开。例如:

FOO = A123
BAR = $(FOO) B456

FOO = C789

在这个例子中,变量 BAR 的值仍然是$(FOO) B456,但是因为是使用 = 赋值的方式定义变量,所以在 BAR 在实际使用前,$(FOO) 所表示的值将被展开并赋值给变量 BAR

因此,此处 BAR 的值是:

C789 B456

总之,使用 := 赋值符号,在Makefile中定义变量时,子变量引用会在变量定义时立即展开;
而使用 = 赋值符号,子变量引用会在变量使用时才被展开。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七qi_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值