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

您所在的位置:网站首页 cmake和make区别 【Android构建篇】MakeFile语法中 := 和 = 的区别

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

2023-06-07 19:24| 来源: 网络整理| 查看: 265

使用:=

在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中定义变量时,子变量引用会在变量定义时立即展开; 而使用 = 赋值符号,子变量引用会在变量使用时才被展开。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3