0
点赞
收藏
分享

微信扫一扫

Makefile 的几种赋值方式


参考:http://stackoverflow.com/questions/448910/makefile-variable-assignment

有个人问了一个问题,

VARIABLE = value
VARIABLE ?= value
VARIABLE := value
VARIABLE += value

上述几种Makefile的赋值有什么区别?


参考如下:

后期设置
VARIABLE = value
正常设置一个变量 - 变量的值不是在声明而是在使用时递归展开


立即设置
VARIABLE := value
直接使用 value 的值来设置来变量 - 它的值在声明时就展开了。


空时设置
VARIABLE ?= value
只有在变量未被设置时设置成value


追加设置
VARIABLE += value
Append是把 value 追加到 VARIABLE 上(或是如果变量不存在则设置该值)


参考Makefile如下:

ifdef DEFINE_VRE
    VRE = "Hello World!"
endif

ifeq ($(OPT),define)
    VRE ?= "Hello World! First!”
endif

ifeq ($(OPT),add)
    VRE += "Kelly!”
endif

ifeq ($(OPT),recover)
    VRE := "Hello World! Again!”
endif

x = foo
y = $(x) bar
x = xyz

m := foo
n := $(m) bar
m := xyz

all:
	@echo $(VRE)
	@echo $y
	@echo $n




举报

相关推荐

0 条评论