Makefile中主要有四个赋值符号: = 是最基本的赋值:= 是覆盖之前的值?= 是如果没有被赋值过就赋予等号后面的值+= 是添加等号后面的值 1.“=” “=”赋值:make会将整个makefile展开后,再决定变量的值.也就是说,变量的值将会是整个makefile中最后被指定的值.如例: x = foo y = $(x) bar x = ABC 在上例中,y的值将会是 ABC bar ,而不是 foo bar . 2.“:=” “:=”赋值:“:”表示变量的值决定于它在makefile中的…
在makefile中赋值方式有:'='.':='.'?='和'+='. A = a $(B) B = b all: echo $(A) #运行结果:echo a b a b 这种赋值方式是没有先后顺序的,但是这种赋值方式可能会出现问题,例如递归定义时:A = $(A) A := a $(B) B = b all: echo $(A) # 运行结果:echo a a 这种赋值方式有先后顺序,只能使用已经定义的变量. A = a A ?= b B ?= c all: echo $(A) $(B) #…