Makefile 变量替换

Makefile 变量替换进阶

Makefile 提供两种强大的变量替换方法:

1. 字符串替换:

  • 语法: $(var:a=b)${var:a=b}
  • 功能: 将变量 var 中所有以 a 结尾的字符串替换为 b.
  • 注意: "结尾" 指的是空格或字符串结束符.

makefile

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

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

# bar 的值为 "a.c b.c c.c"

2. 模式替换:

  • 语法: $(var:pattern=replacement)
  • 功能: 利用静态模式匹配并替换变量内容.
  • 说明: pattern 中需包含一个 % 通配符, replacement 中可以使用 % 引用匹配到的内容.

makefile

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

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

# bar 的值为 "a.c b.c c.c"

变量嵌套:

makefile

x = y

y = z

a := $(x)

# a 的值是 "z",因为 $(x) 会被展开为 y,然后再展开为 z.

pdf 文件大小:2.36MB