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

如何批量将Makefile中的目标标记为.PHONY?

批量标记test-*类目标为.PHONY的方法

方法一:使用GNU Make模式化.PHONY(推荐)

GNU Make 3.82及更高版本支持在.PHONY中使用通配符模式,直接添加以下代码即可:

.PHONY: test-%

如果之前配置后未生效,先执行make --version确认你的Make版本是否符合要求。低于3.82的版本不支持该特性,需要升级Make或使用下面的替代方法。

方法二:通过Shell命令批量生成目标列表

针对不支持模式化.PHONY的旧版本Make,可以用Shell命令从Makefile中提取所有test-开头的目标,再批量标记:

# 提取所有以test-开头的目标
TEST_TARGETS := $(shell grep -E '^test-' Makefile | cut -d: -f1)
.PHONY: $(TEST_TARGETS)

这段代码会扫描Makefile,提取所有test-开头的目标行,去掉冒号后的内容,将这些目标统一标记为.PHONY。

注意事项

  • 若你的test-*目标是通过模式规则定义的(比如test-%: ...),方法一的模式化.PHONY完全适配这种场景,无需额外处理。
  • 方法二依赖grep和cut工具,类Unix环境可直接使用,Windows环境需替换为PowerShell对应的命令逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 03:20:27