在Makefile中=和=有什么区别?

对于Make(或Microsoft nmake)中的variables赋值,我看到:=和=运算符。 他们之间有什么区别?

这在GNU Make文档的6.2节“ variables的两个方面”中有描述 。

简而言之,使用:=定义的variables会被扩展一次,但使用=定义的variables会在使用时被扩展。

http://www.gnu.org/software/make/manual/make.html#Flavors

=定义一个recursion的扩展variables。 :=定义一个简单的扩展variables。