1、"=" 、 “:=”、 "+=" 、 “?=”区别
"=" 是基本的赋值操作符
":=" 是覆盖之前的值
"+=" 是添加等号后面的值
"?=" 是如果没被赋值过就赋予等号后面的值
2、"=" 与":="的例子区别
"=" 变量的值将会是整个makefile中最后被指定的值
x = foo
y = $(x) bar
x = xyz
在上例中,y的值将会是 xyz bar ,而不是foo bar,x的值是xyz
":=" 表示变量的值决定于它在makefile中的位置,而不是整个makefile展开后的最终值
x := foo
y := $(x) bar
x := xyz
在上例中,y的值将会是 foo bar ,而不是xyz bar 了,x的值是xyz
3、Makefile调试方法,在不知道某个变量的具体值是什么的时候,可使用echo进行打印,如命令@echo $(VALUE),其中@的作用是执行命令时不显示命令的执行。