【书写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!

经验分享 程序员 微信小程序 职场和发展