wildcard linux

Linux Command—— Wildcard m 阅读详情
 

1、wildcard : 扩展通配符
2、notdir : 去除路径
3、patsubst :替换通配符

例子:
建立一个测试目录,在测试目录下建立一个名为sub的子目录
$ mkdir test
$ cd test
$ mkdir sub

在test下,建立a.c和b.c2个文件,在sub目录下,建立sa.c和sb.c2 个文件

建立一个简单的Makefile
src=$(wildcard *.c ./sub/*.c)
dir=$(notdir $(src))
obj=$(patsubst %.c,%.o,$(dir) )

all:
 @echo $(src)
 @echo $(dir)
 @echo $(obj)
 @echo "end"
 
执行结果分析:
第一行输出:
a.c b.c ./sub/sa.c ./sub/sb.c

wildcard把 指定目录 ./ 和 ./sub/ 下的所有后缀是c的文件全部展开。

第二行输出:
a.c b.c sa.c sb.c
notdir把展开的文件去除掉路径信息

第三行输出:
a.o b.o sa.o sb.o

在$(patsubst %.c,%.o,$(dir) )中,patsubst把$(dir)中的变量符合后缀是.c的全部替换成.o,
任何输出。
或者可以使用
obj=$(dir:%.c=%.o)
效果也是一样的。

这里用到makefile里的替换引用规则,即用您指定的变量替换另一个变量。
它的标准格式是
$(var:a=b) 或 ${var:a=b}
它的含义是把变量var中的每一个值结尾用b替换掉a

今天在研究makefile时在网上看到一篇文章,介绍了使用函数wildcard得到指定目录下所有的C语言源程序文件名的方法,这下好了,不用手工一个一个指定需要编译的.c文件了,方法如下:

SRC = $(wildcard *.c)

等于指定编译当前目录下所有.c文件,如果还有子目录,比如子目录为inc,则再增加一个wildcard函数,象这样:

SRC = $(wildcard *.c) $(wildcard inc/*.c)

也可以指定汇编源程序:
ASRC = $(wildcard *.S)

这样一来,makefile模板可修改的基本就是AVR名称和时钟频率了,其它的一般不用动了
【makefile函数】makefile 常用函数汇总 阅读详情

相关推荐

Makefile实现混合编译不同目录下不同的.c .cc .cpp文件,并以不同的编译方式编译

Makefile实现编译不同目录下不同的.c .cc .cpp文件 需求 要求一个makefile可编译不同目录下的所有.c .cc .cpp文件,根据build.sh传入的不同参数来实现编译不同目录 文件结构如下 Makefile dir1下有main.c func.c build.sh dir2下有main.c func.cc build.sh dir3下有main.c func.cpp bu...

sjc2870的博客 1814

linux 通配符(wildcard)

linux 通配符(wildcard)_bdss58的博客-优快云博客_linux wildcard

shizhong2006的专栏 862

Cursor插件安装CodeX保姆级教程:从登录到调整面板布局,一步不落

本文提供Cursor编辑器安装CodeX插件的详细教程,涵盖从登录到调整面板布局的全流程。通过优化界面布局和配置参数,帮助开发者提升编码效率,特别适合需要智能代码补全的编程场景。

weixin_42648844的博客 4746

Linux命令学习-wildcard

前言 今天在makefile里看到了wildcard关键字,不知其含义,查了一下有所认识,特记录于此。 场景回顾 test: # check function ifneq ($(wildcard apps/function1/result/*_bad.output),) @echo "Function test failed!" @exit 1 else @echo "Funct...

初心者小屋 4093

3DGS-to-PC实战指南:零代码实现3D高斯场景到点云/Mesh的高效转换

本文详细介绍了3DGS-to-PC工具如何实现3D高斯场景到点云/Mesh的高效转换,无需代码即可完成。通过实战案例和参数调优技巧,帮助用户快速掌握这一开源插件的使用方法,提升3D数据处理效率。特别适合建筑扫描、影视特效等领域的专业人士。

q1w3e5r7t9y的博客 273

车联网ECU、TSP与TBOX通信流程

对比维度ECU(电子控制单元)BMS(电池管理系统)应用场景传统燃油车 + 新能源汽车仅限新能源汽车核心作用控制整车各系统运行管理动力电池安全与寿命车联网角色数据采集与传输的核心载体提供电池相关的核心数据。

tecoes的博客 1230

Linux wildcard

Linux中的通配符: 需要注意的是正则表达式与通配符完全是两个东西。wildcard代表的是bash操作接口的一个功能,而正则表达式是一种字符串处理的方法。 例如,'?',在通配符中表示一个字符,在RE中表示0或1个字符。 1 ls -d ????? # 匹配有5个字符的文件(夹),-d的作用是不显示文件夹下的文件 '*',在通配符中表示0或多个字符,在RE中通常以组合形态...

weixin_30512089的博客 533

【AAAI 2025】轻量级特征增强新范式!FCM 模块助力小目标检测,即插即用提升模型泛化能力

本文介绍了AAAI 2025提出的轻量级特征增强新范式FCM模块,它通过显式分离并双向交互语义与空间特征,有效解决了小目标检测中特征信息失配的核心难题。该模块设计精巧,计算开销极低,能够即插即用式地嵌入YOLO等主流检测网络,显著提升模型对小目标的泛化检测能力,尤其适用于遥感、自动驾驶等对计算资源敏感的实际场景。

weixin_29056145的博客 287

linux_makefile文件编写,基本规则、工作原理、模式规则,wildcard函数、patsubst函数

makefile文件命名规则,基本规则,make根据文件修改的时间来进行对比的,源文件生成的时间

qq_44177918的博客 1504

西门子与汇川伺服脉冲连接(速度模式)

如何使用西门子PLC与汇川伺服进行脉冲连接

2301_77347966的博客 1万+

液滴碰撞壁面的过程背景论文——bouncing反弹,spreading扩展,splashing飞溅。铺展过程介绍。还存在很多未解之谜。

【1993-德国-Phenomena of liquid drop impact on solid and liquid surfaces】液滴碰撞壁面的过程背景——bouncing反弹,spreading扩展,splashing飞溅。还存在很多未解之谜。还存在很多未解之谜。不同液滴形状碰撞过程。

qq_15963745的博客 199

Linux之Makefile(wildcard)

使用函数“wildcard” ,它的用 法是:$(wildcard PATTERN...) 。在 Makefile 中,它被展开为已经存在的、使用空格 分开的、匹配此模式的所有文件列表。如果不存在任何符合此模式的文件,函数会忽略 模式字符并返回空。需要注意的是:这种情况下规则中通配符的展开和上一小节匹配通 配符的区别。  一般我们可以使用“$(wildcard *.c)”来获取工作目录下

嵌入式Linux开发 1290

Nerf 训练自有数据

colmap相机位姿转为LLFF格式数据

zfjBIT的专栏 2309

一、linux shell通配符(wildcard)

一、linux shell通配符(wildcard) 通配符是由shell处理的(不是由所涉及到命令语句处理的,其实我们在shell各个命令中也没有发现有这些通配符介绍), 它只会出现在 命令的“参数”里(它不用在 命令名称里, 也不用在 操作符上)。当shell在“参数”中遇到了通配符时,shell会将其当作路径或文件名去在磁盘上搜寻可能的匹配:若符合要求的匹配存在,则进行代换(路径扩展)

追求梦想 8892

飞牛fnNAS虚拟机标准安装

飞牛NAS是一款基于Debian开发的国产免费NAS系统,支持x86架构设备,可将闲置硬件改造为NAS服务器。系统安装简便,支持多种存储模式与硬盘休眠功能,具备智能影视管理、照片备份等实用功能,并提供多种远程访问方式。飞牛NAS还支持Docker扩展,目前已承诺永久免费。文章详细介绍了在VMware虚拟机中安装飞牛NAS的步骤,包括下载镜像、创建虚拟机、初始化设置等过程,并展示了创建共享文件夹等基本操作,帮助用户快速上手这款功能强大的免费NAS系统。

dgnankai的专栏 3255

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Linux-Makefile(makefile 中的 wildcard 与 patsubst 函数)

makefile 里的函数跟它的变量很相似——使用的时候,你用一个 $ 符号跟开括号,函数名,空格后跟一列由逗号分隔的参数,最后 用关括号结束。例如,在 GNU Make 里有一个叫 'wildcard' 的函 数,它有一个参数,功能是展开成一列所有符合由其参数描述的文 件名,文件间以空格间隔。你可以像下面所示使用这个命令:          SOURCES = $(wildcard

MEIC51的专栏 3629

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Makefile的2个常用函数wildcard和patsubst

1. wildcard 2. patsubst

qinghehe198508的博客 178

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Linux的通配符(wildcard)和bash下的特殊符号

转载于:http://blog.youkuaiyun.com/fang_chuan/article/details/53074933    在 bash  操作环境中有一个非常有用的功能,那就是通配符 (wildcard) !有了wildcard利用 bash 处理数据就方便了!底下我们列出一些常用的通配符:          符号                            

憨憨松的博客 1351

Linux Shell/Bash wildcard通配符、元字符、转义符使用

说到shell通配符(wildcard),大家在使用时候会经常用到。下面是一个实例: 1 1 2 3 4 [chengmo@localhost ~/shell]$ ls a.txt b.txt c.old #2 ...

dianfu2892的博客 377

linux find目录通配符,Linux find命令与通配符(wildcard)常见错误

本文长度500多字,阅读大概需要2分钟。在Linux平台下find是常用命令,并且经常是配合通配符(wildcard)一起使用,毕竟我们只能记住某个文件一部分;我们需要寻找当前目录下所有的sh文件,随手敲一条命令:find . -name *.sh,目测逻辑完美,可以运行,只实际上这条命令在执行时有些许问题。find使用中的错误手边有环境的话,可以执行下会发现,结果是这样:这种错误很奇怪,如果没看...

weixin_42502382的博客 1418

Makefile里的wildcard 理解

wildcard描述一个通配对象。 应用场景一: 如:src = $(wildcard /src/*.c) 表示遍历src目录下的所有.c文件 应用场景二: ifneq ($(wildcard …/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin),) CROSS_COMPILE ?= $(shell pwd)/…/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9

weixin_42493016的博客 1726

LINUX学习之初识Makefile(二)

LINUX学习之初识Makefile(二) Makefile函数 函数用法:$(函数名 参数集合) 常用函数 subst——字符串替换函数 $(subst <from>,<to>,<text>) 实现:此函数的功能是将字符串text中的from内容替换为to,函数返回被替换以后的字符串 例如:$(subst ABC,abc,my name is ABC) ,把字符串my name is ABC中的ABC替换为abc,函数返回my name is abc。 p

原上风的博客 160
上一篇: CAsyncSocket使用总结
下一篇: 批量编译目录下文件的Makefile
flymachine
博客等级 码龄23年 253粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值