makefile ------ 常用函数
函数格式
notdir
notdir 函数用于去除文件路径中的目录部分
subst
是一个替换函数,这个函数有三个参数,第一个参数是被替换字符串,第二个参数是替换字符串,第三个参数是替换操作作用的字符串
$(subst .c,.o,test1.c test2.c)的意思就是:用.o替换test1.c test2.c中的.c,最终得到test1.o test2.o
wildcard
在Makefile规则中,通配符会被自动展开。但在变量的定义和函数引用时,通配符将失效(比如$(subst .c,.o,$(wildcard *.c)) )。这种情况下如果需要通配符有效,就需要使用函数“wildcard”,它的用法是:$(wildcard PATTERN…) 。
在Makefile中,它被展开为已经存在的、使用空格分开的、匹配此模式的所有文件列表。如果不存在任何符合此模式的文件,函数会忽略模式字符并返回空。所以可以用来判断文件是否存在
// 判断文件是否存在
ifneq ($(TELINK_SDK_PATH)/make/Makefile, $(wildcard $(TELINK_SDK_PATH)/make/Makefile)) $(error "Please check if the TELINK_SDK_PATH is correct") endif
$(wildcar *.c) 获取工作目录下的所有的 .c 文件名列表
strip
格式:$(strip <string> )
功能:去掉<string>字串中开头和结尾的空字符,并将中间的多个连续空字符(如果有的话)合并为一个空字符。
返回:返回被去掉空格的字符串值。
说明:空字符包括 空格,tab等不可显示的字符
示例:
str1 := abc str2 := a b c all: @echo $(strip $(str1)) @echo $(strip $(str2))
输出结果:
abc
a b c
qstrip
qstrip=$(strip $(subst ",,$(1)))
去掉"号和多余的空格
标签:
make/Makefile
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)