Makefile中的 wildcard patsubst

本文深入解析Makefile中的核心函数,如wildcard、patsubst、addsuffix等,详细阐述它们的功能、用法及重要性。同时,通过实例讲解如何利用这些函数进行高效代码管理与编译流程优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//参考跟我一起写Makefile这文件名操作函数
#Build with external xelog.h
CFLAGS += -DCONFIG_USE_EXTERNAL_XELOG=1
#CFLAGS += -UCONFIG_USE_EXTERNAL_XELOG

LDFLAGS += -lpthread 

SRC_FILES := $(wildcard *.c)   
ALL_BINS := $(patsubst %.c, %.bin, $(SRC_FILES))
DEP_FILES := $(addsuffix .d,$(basename $(SRC_FILES)))

%.bin:%.c
 $(CC) -o $@ $(CFLAGS) $<  $(LIB_A) $(LDFLAGS)

.PHONY: all clean

all: $(LIB_A) $(ALL_BINS)
 chmod +x $(ALL_BINS)
 rm -rf $(DEP_FILES)
 @echo "build test_local finish"

clean:
 rm -rf $(ALL_BINS) $(DEP_FILES)
 
ifneq ($(MAKECMDGOALS),clean)
-include $(DEP_FILES)
endif
1) wildcard函数

     它有一个参数,功能是展开成一列所有符合由其参数描述的文件名,文件间以空格间隔。

2)patsubst
$(patsubst <pattern>,<replacement>,<text>)
名称:模式字符串替换函数——patsubst。
功能:查找<text>中的单词(单词以“空格”、“Tab”或“回车”“换行”分隔)是否符合模式<pattern>,如果匹配的话,则以<replacement>替换。这里,<pattern>可以包括通配符“%”,表示任意长度的字串。如果<replacement>中也包含“%”,那么,<replacement>中的这个“%”将是<pattern>中的那个“%”所代表的字串。(可以用“\”来转义,以“\%”来表示真实含义的“%”字符)
返回:函数返回被替换过后的字符串。

3)addsuffix
$(addsuffix <suffix>,<names...>)
名称:加后缀函数——addsuffix。
功能:把后缀<suffix>加到<names>中的每个单词后面。
返回:返回加过后缀的文件名序列。
示例:$(addsuffix .c,foo bar)返回值是“foo.c bar.c”


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值