Linux Makefile中赋值运算符=,:=,?=和+= 之间的区别
来源:互联网 发布:虚拟机安装mac os 编辑:程序博客网 时间:2024/06/06 14:05
### Date: 2017/4/17
### Author: SoaringLee
(1) := 是立即变量赋值,在定义时值已经被确定;另外一种理解: “:=”表示变量的值决定于它在makefile中的位置,而不是整个makefile展开后的最终值。
(2) = 是延时变量赋值,只有在这个变量被使用时才展开,$(VAR)就是一种被使用 ;
另外一种理解:make会将整个makefile展开后,再决定变量的值。也就是说,变量的值将会是整个makefile中最后被指定的值。
例:
VAR_A=abcd
VAR_B=$(VAR_A)VAR_C:=$(VAR_A)
VAR_A=cdef
此时,$(VAR_B) 为 cdef (跟随VAR_A变化)。
$(VAR_C) 为 abcd (不随VAR_A变化)。
(3) ?= 是条件赋值, 比如
foo ?= $(bar)
只有当foo变量还没有被定义的时候,才会将bar的值赋给foo。
(4) +=是添加等号后面的值。比如:
CFLAGS+= -O2 -g
0 0
- Linux Makefile中赋值运算符=,:=,?=和+= 之间的区别
- Makefile中赋值运算符 = 与 := 的区别
- makefile 中":"和":="赋值的区别
- Makefile中赋值符号=, :=, ?=, +=的区别
- c++中不同类之间的赋值(重载运算符= 即operator =)
- makefile中“=”和“:=”的区别
- makefile中“=”和“:=”的区别
- Makefile 中:= 和=的区别
- makefile中“=”和“:=”的区别
- 赋值和算术运算符的重载(1):赋值运算符 =
- 构造函数,拷贝构造和赋值运算符‘=‘的区别
- PHP中赋值运算符.=的使用方法与技巧
- Makefile中变量赋值=,:=,?=
- makefile四个赋值运算符区别
- 比较运算符compareTo()、equals()、==之间的区别
- 对+=赋值运算符的认识
- C++ =赋值运算符的重载
- PHP中使用&赋值与=赋值的区别
- A
- bzoj 3027: [Ceoi2004]Sweet (生成函数)
- 如何用两个栈模拟队列操作
- 责任链模式 详解
- AlexNet-ImageNet Classification with Deep Convolutional Neural Networks
- Linux Makefile中赋值运算符=,:=,?=和+= 之间的区别
- google signing
- 答答租车系统(面向对象综合练习)
- 穷举法-有趣的数字(腾讯2017实习生编程题)
- kali破解隔壁wif(字典破解WPA/WPA2加密)
- 3、实现泛型特性构件
- CentOS安装g++
- JUST SO SO之spring事务
- 设计模式:单例模式