makefile中的赋值符号: =, +=, :=,?= 的区别:
= 是最基础的赋值运算。
:= 是覆盖之前的值。
?= 是如果没有被赋值过就赋予等号后面的值。
+= 是添加等号后面的值。
以下是我写的一个makefile例子:
#/bin/sh
ifdef DEFINE_VER
VER = "Hello World!"
else
endif
ifeq ($(OPT), d)
VER ?= "Hello World! First!"
endif
ifeq ($(OPT), a)
VER += "add Tinus Chen!"
endif
ifeq ($(OPT), r)
VER := "Hello World recover!"
endif
all:
echo $(VER)
~
运行结果如下:
由结果知道各个赋值的区别。