You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Makefile中捕获build-%目标的正则匹配部分

提取Makefile模式目标中的匹配字符串

你说得对,$@确实会返回整个目标名,但GNU Make里专门有个自动变量就是干这个的——$*,它正好会捕获模式目标里%匹配到的部分!

举个实际的例子,假设你的Makefile里有这样的目标定义:

build-%:
	@echo "正在构建组件: $*"
	# 这里可以直接用$*代表匹配到的字符串,比如执行针对该组件的编译命令
	gcc -o bin/$* src/$*.c

当你运行make build-test时,$*就会被替换成test,输出就是正在构建组件: test,同时编译命令也会变成gcc -o bin/test src/test.c,完全符合你的需求。

补充一点:这个$*变量是GNU Make的标准自动变量,只要你用的是GNU Make(大部分Linux/macOS环境默认都是)就没问题。如果是其他Make实现可能需要额外处理,但一般场景下用$*就足够解决你的问题啦。

内容的提问来源于stack exchange,提问作者Mazzy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:21:12