本文将介绍一下几种符号:$、=、+=、?=、:=、
makefile中,$的意思是取变量的意思,比如,a=4; 那么在后面的语句中,$a 就代表的是取a的值。如果给a定义的是个宏比如 a=FILE_PATH 则后面使用$a的时候意思就是 取FILE_PATH的值。
=:意思 就是简单赋值。
+=:意思就是添加等号后面的值
:=:意思是覆盖之前的值
?=:意思就是如果没有被赋值过,就赋值等号后面的值
贴个例子
新建一个Makefile,内容为:
ifdef DEFINE_VRE
VRE = “Hello World!”
else
endif
ifeq ($(OPT),define)
VRE ?= “Hello World! First!”
endif
ifeq ($(OPT),add)
VRE += “Kelly!”
endif
ifeq ($(OPT),recover)
VRE := “Hello World! Again!”
endif
all:
@echo $(VRE)
敲入以下make命令:
make DEFINE_VRE=true OPT=define 输出:Hello World!
make DEFINE_VRE=true OPT=add 输出:Hello World! Kelly!
make DEFINE_VRE=true OPT=recover 输出:Hello World! Again!
make DEFINE_VRE= OPT=define 输出:Hello World! First!
make DEFINE_VRE= OPT=add 输出:Kelly!
make DEFINE_VRE= OPT=recover 输出:Hello World! Again!