Skip to content

Latest commit

 

History

History
34 lines (23 loc) · 875 Bytes

File metadata and controls

34 lines (23 loc) · 875 Bytes

Makefile Assignment

Makefile赋值=/:=/?=/+=区别

参考文档

简述

  • =: 是最基本的赋值
  • :=: 是覆盖之前的值
  • ?=: 是如果没有被赋值过就赋予等号后面的值
  • +=: 是添加等号后面的值

其中=make会将整个Makefile展开后,再决定变量的值。也就是说,变量的值将会是整个Makefile中最后被指定的值。如示例:

x = foo
y = $(x) bar
x = xyz

在上例中,y的值将会是xyz bar,而不是foo bar

:=,表示变量的值决定于它在Makefile中的位置,而不是整个Makefile展开后的最终值:

x := foo
y := $(x) bar
x := xyz

在上例中,y的值将会是foo bar,而不是xyz bar了。