• 追加变量值

    追加变量值

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

    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会自动为我们解决这个问题,我们不必担心这个问题。