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

Makefile模式替换:如何将A B C转为A/libA.o B/libB.o C/libC.o

在Makefile中转换单词列表为指定格式的方法

你可以通过两种常用方法实现这个需求:

方法一:使用patsubst函数

patsubst其实完全能满足你的需求,只要正确设置匹配和替换模式即可。示例代码:

WORDS = A B C
TARGETS = $(patsubst %, %/lib%.o, $(WORDS))

这里的%作为通配符匹配列表中的每个单词(比如A、B、C),替换模式%/lib%.o会把每个匹配到的单词X转换成X/libX.o,最终得到你需要的列表。

方法二:使用foreach循环

如果觉得patsubst的模式不够直观,也可以用foreach遍历列表逐个拼接:

WORDS = A B C
TARGETS = $(foreach word, $(WORDS), $(word)/lib$(word).o)

这个逻辑更直白:遍历WORDS中的每个单词,将其拼接成[单词]/lib[单词].o的格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 22:29:49