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

Makefile多目标依赖匹配及通配符匹配片段获取问题

你的原代码无法生效的核心原因是:Make 解析规则的依赖列表阶段,自动变量$@还未被赋值,因此无法正确关联目标和对应的.test后缀依赖;同时普通通配符*也无法直接提取匹配到的前缀部分。

正确实现方式如下:

# 声明需要生成的目标列表
TARGETS := a b

# 静态模式规则:指定每个目标依赖对应名称的 .test 后缀文件
$(TARGETS): %: %.test

# 模式规则匹配所有 .test 结尾的目标
%.test:
	@echo $@
	@echo $*

参数说明

  • $@:规则对应的完整目标名,执行make a时这里会输出a.test
  • $*:模式规则中%通配符匹配到的内容,就是你需要的前缀a
  • 注意:规则内的命令行开头必须使用制表符(Tab),不能用空格,否则Make会抛出语法错误。

执行效果

运行make a后输出:

a.test
a

完全符合你的预期要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 03:57:02