疑问

makefile_value

解答

makefile_value_解答

学到

Makefile

  1. 先执行没有缩进的
  2. 再执行缩进的

进一步探索

变量的值到底在定义时扩展(静态扩展),还是在运行时扩展(动态扩展)?

Makefile 一共提供了四个赋值运算符(=、:=、?=、+=)

VARIABLE = value
# 在执行时扩展,允许递归扩展。

VARIABLE := value
# 在定义时扩展。

VARIABLE ?= value
# 只有在该变量为空时才设置值。

VARIABLE += value
# 将值追加到变量的尾端。

还是不好理解。。。

自己的总结

  1. 先执行没有缩进的
  2. 再执行缩进的
  3. :=
    1. 执行没有缩进的
    2. 执行到该变量的时候,前面扩展到什么样,就是什么样了
    3. 即使在后面有个当前引用的变量的值发生变化了,该变量也不再刷新

参考

Makefile 依赖中的变量展开问题

Make 命令教程