追加变量值

我们可以使用 += 操作符给变量追加值,如:

  1. objects = main.o foo.o bar.o utils.o
  2. objects += another.o

于是,我们的 $(objects) 值变成:“main.o foo.o bar.o utils.o another.o”(another.o被追加进去了)

使用 += 操作符,可以模拟为下面的这种例子:

  1. objects = main.o foo.o bar.o utils.o
  2. objects := $(objects) another.o

所不同的是,用 += 更为简洁。

如果变量之前没有定义过,那么, += 会自动变成 = ,如果前面有变量定义,那么 += 会继承于前次操作的赋值符。如果前一次的是 := ,那么 += 会以 := 作为其赋值符,如:

  1. variable := value
  2. variable += more

等价于:

  1. variable := value
  2. variable := $(variable) more

但如果是这种情况:

  1. variable = value
  2. variable += more

由于前次的赋值符是 = ,所以 += 也会以 = 来做为赋值,那么岂不会发生变量的递补归定义,这是很不好的,所以make会自动为我们解决这个问题,我们不必担心这个问题。