【书写makefile】相关符号介绍
本文将介绍一下几种符号:$、=、+=、?=、:=、
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!
