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

给出makefile代码:

a1 := 32
b1 ?= 12
c1 = 1
d1 += 2
mytest1:
	@echo 'a1=' $(a1)
	@echo 'b1=' $(b1)
	@echo 'c1=' $(c1)
	@echo 'd1=' $(d1)

a1 := 64
b1 ?= 24
c1 = 2
d1 += 8

mytest:
	@echo 'a1=' $(a1)
	@echo 'b1=' $(b1)
	@echo 'c1=' $(c1)
	@echo 'd1=' $(d1)

给出linux运行结果:

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐