1、赋值符“= ”
变量的真实值取决于它所引用的变量的最后一次有效值
1 name = zzk
2 curname = $(name)
3 name = china
4
5 print:
6 @echo $(curname)
输出:china
2、赋值符“:=
不会使用后面定义的变量,只能使用前面已经定义好的,这就是“=”和“:=”两个的区别
1 name = zzk
2 curname := $(name)
3 name = china
4
5 print:
6 @echo $(curname)
7
输出:zzk
3 、赋值符“?= ”
“?=”是一个很有用的赋值符,比如下面这行代码:
curname ?= abc
上述代码的意思就是,如果变量 curname 前面没有被赋值,那么此变量就是“abc”,
如果前面已经赋过值了,那么就使用前面赋的值。
4 、变量追加“+= ”
Makefile 中的变量是字符串,有时候我们需要给前面已经定义好的变量添加一些字符串进
去,此时就要使用到符号“+=”,比如如下所示代码:
objects = main.o inpiut.o
objects += calcu.o
一开始变量 objects 的值为“main.o input.o”,后面我们给他追加了一个“calcu.o”,因此变
量 objects 变成了“main.o input.o calcu.o”,这个就是变量的追加。