Makefile 中的= := ?= += 的区别

“=”最基本的赋值方式

“:=”覆盖之前的值

“?=”若没有则赋值,有则保留原来的(相当于不执行该赋值操作)

“+=”就是在原的基础上添加

测试Makefile如下:

var="this is original\n"
ifdef recover
var:="this is recover(:=)\n"
endif
 
ifdef nodefinevalue
var?="this is nodefinevalue(?=)\n"
endif 

ifdef add
var+="this is add(?=)\n"
endif 
all:
	@echo $(var)
运行结果如下:
jump@mylubuntu:/home/mysmbshare/kernel/cdevdriver/export_symbol$ make
this is original

jump@mylubuntu:/home/mysmbshare/kernel/cdevdriver/export_symbol$ make recover=ture
this is recover(:=)

jump@mylubuntu:/home/mysmbshare/kernel/cdevdriver/export_symbol$ make nodefinevalue=ture
this is original

jump@mylubuntu:/home/mysmbshare/kernel/cdevdriver/export_symbol$ make add=ture
this is original
 this is add(?=)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章