makefile两种变量的高级使用方法

变量值的替换。

直接示例

foo := a.o b.o c.o

bar := $(foo:.o=.c)

这个示例中,我们先定义了一个“$(foo)”变量,而第二行的意思是把 “$(foo)”中所有以“.o”字串“结尾”全部替换成“.“.c”,所以我们的“$(bar)” 的值就是“a.c b.c c.c”。

另外一种变量替换的技术是以“静态模式”(参见前面章节)定义的,

如:

foo := a.o b.o c.o

bar :=$(foo:%.o=%.c)

这依赖于被替换字串中的有相同的模式,模式中必须包含一个“%”字 符,这个例子同样让$(bar)变量的值为“a.c b.c c.c”。

—“把变量的值再当成变量这个就没有什么可说的了

x = y

y = z

a := $($(x))

a = y

就是复杂一点,自己梳理一下就好

在这种方式中,或要可以使用多个变量来组成一个变量的名字,然后 再取其值:

first_second = Hello

a = first

b = second

all = $($a_$b)

这种稍稍特殊一点,一般也不这么用

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