追加变量值
我们可以使用 +=
操作符给变量追加值,如:
- objects = main.o foo.o bar.o utils.o
- objects += another.o
于是,我们的 $(objects)
值变成:“main.o foo.o bar.o utils.o another.o”(another.o被追加进去了)
使用 +=
操作符,可以模拟为下面的这种例子:
- objects = main.o foo.o bar.o utils.o
- objects := $(objects) another.o
所不同的是,用 +=
更为简洁。
如果变量之前没有定义过,那么, +=
会自动变成 =
,如果前面有变量定义,那么 +=
会继承于前次操作的赋值符。如果前一次的是 :=
,那么 +=
会以 :=
作为其赋值符,如:
- variable := value
- variable += more
等价于:
- variable := value
- variable := $(variable) more
但如果是这种情况:
- variable = value
- variable += more
由于前次的赋值符是 =
,所以 +=
也会以 =
来做为赋值,那么岂不会发生变量的递补归定义,这是很不好的,所以make会自动为我们解决这个问题,我们不必担心这个问题。