Makefile 变量和赋值
疑问
解答
学到
Makefile
- 先执行没有缩进的
- 再执行缩进的
进一步探索
变量的值到底在定义时扩展(静态扩展),还是在运行时扩展(动态扩展)?
Makefile 一共提供了四个赋值运算符(=、:=、?=、+=)
VARIABLE = value
# 在执行时扩展,允许递归扩展。
VARIABLE := value
# 在定义时扩展。
VARIABLE ?= value
# 只有在该变量为空时才设置值。
VARIABLE += value
# 将值追加到变量的尾端。
还是不好理解。。。
自己的总结
- 先执行没有缩进的
- 再执行缩进的
:=
- 执行没有缩进的
- 执行到该变量的时候,前面扩展到什么样,就是什么样了
- 即使在后面有个当前引用的变量的值发生变化了,该变量也不再刷新