:= vs = in make macros

Aar*_*ken 56 makefile gnu-make colon-equals

可能重复:
GNU Makefile变量赋值=,?=,:=和+ =之间有什么区别?

我只知道非常基本的makefile语法,并且正在阅读另一个项目makefile并且遇到:=了宏声明.他们为什么要用它?

换句话说,两者之间是否有任何区别

MYMACRO = hi i'm a macro
Run Code Online (Sandbox Code Playgroud)

MYMACRO := hi i'm a macro
Run Code Online (Sandbox Code Playgroud)

sve*_*rre 81

:=GNU make中定义的变量在定义时而不是在使用时进行扩展.

  • 你能解释一下,"扩展"是什么? (14认同)
  • @rubo77 *Expand* 意味着用它的 `value` 替换 `$variable`。有关更多详细信息,请参见此处 http://stackoverflow.com/a/30215530/5016540 (2认同)
  • 一个例子将是有益的。我发现“重复”中的链接答案更具解释性。 (2认同)