2011-06-08 52 views
30

可能重复:
Makefile variable assignment:= VS在make宏=

我只知道很基本的makefile语法,并通过其他项目的makefile在读和整个:=来到宏声明。他们为什么要使用它?

换句话说,是否有

MYMACRO = hi i'm a macro 

MYMACRO := hi i'm a macro 

之间的任何差异?

+0

区别是巨大而根本的。有关信息,请参阅制作手册(在终端中输入“info make”)。 – 2011-06-08 18:19:07

+2

http://stackoverflow.com/questions/448910/makefile-variable-assignment – cnicutar 2011-06-08 18:20:07

+0

特别参见http://www.gnu.org/software/make/manual/make.html#Flavors – 2011-06-08 18:20:38

回答

45

定义的:=GNU make中定义的变量在定义时会扩展,而不是在它们被使用时扩展。

+7

你能否解释一下,什么“展开”调用? – rubo77 2016-11-16 10:36:39

+0

@ rubo77 *展开*表示用'value'替换'$ variable'。这里看到更多细节http://stackoverflow.com/a/30215530/5016540 – thangdc94 2017-04-28 08:08:18

+0

一个例子将是有益的。我发现“重复”中的链接答案更具解释性。 – 2017-08-18 20:57:30