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(?=)

猜你喜欢

转载自blog.csdn.net/u011171361/article/details/79691361