首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

make wildcard_其在古文中的用法

Makefile规则通配符会被自动展开。但在变量的定义函数引用时,通配符将失效。...在Makefile,它被展开为已经存在的、使用空格分开的、匹配此模式的所有文件列表。如果不存在任何符合此模式的文件,函数会忽略模式字符并返回空。...需要注意的是:这种情况下规则通配符的展开上一小节匹配通配符的区别。 一般我们可以使用“(wildcard *.c)”来获取工作目录下的所有的.c文件列表。...1、wildcard : 扩展通配符 2、notdir : 去除路径 3、patsubst :替换通配符 例子:建立一个测试目录,在测试目录下建立一个名为sub的子目录 mkdir test cd test...第二行输出: a.c b.c sa.c sb.c notdir把展开的文件去除掉路径信息 第三行输出: a.o b.o sa.o sb.o 在(patsubst %.c,%.o,(dir) )patsubst

53610

makefile的include的作用(makefile的变量)

1、wildcard : 扩展通配符 2、notdir : 去除路径 3、patsubst :替换通配符 例子: 建立一个测试目录,在测试目录下建立一个名为sub的子目录 $.../sub/*.c) dir=$(notdir $(src)) obj=$(patsubst %.c,%.o,$(dir) ) all: @echo $(src) @echo...或者可以使用 obj=$(dir:%.c=%.o) 效果也是一样的。 这里用到makefile里的替换引用规则,即用您指定的变量替换另一个变量。...它的标准格式是 $(var:a=b) 或 ${var:a=b} 它的含义是把变量var的每一个值结尾用b替换掉a 今天在研究makefile时在网上看到一篇文章,介绍了使用函数...对于一个已经定义的变量,可以使用“替换引用”将其值的后缀字符(串)使用指定的字符(字符串)替换。

3.2K50
您找到你想要的搜索结果了吗?
是的
没有找到

多文件目录Makefile的写法

多文件目录Makefile写法 1、前言   linux下程序开发,涉及到多个文件,多个目录,这时候编译文件的任务量比较大,需要写Makefile 2、简单测试   测试程序在同一个文件,共有func.h.../bin 5 6 SRC = $(wildcard ${DIR_SRC}/*.c) 7 OBJ = $(patsubst %.c,${DIR_OBJ}/%.o,$(notdir ${SRC}...的 符号 @, ^, < 的意思:  ^ 表示所有的依赖文件  < 表示第一个依赖文件   (2)wildcard、notdirpatsubst的意思:   wildcard : 扩展通配符   ...notdir : 去除路径   patsubst :替换通配符 例如下图例子所示: ?...blog.csdn.net/haoel/article/details/2886/ 最后一行应为 find ${DIR_OBJ} -name *.o -exec rm -rf {} \ ; 少了一个反斜杠;

3.7K20

Linux笔记(9)| 一步步深入Makefile

在Linux编译代码,不像是Windows中有很多集成的IDE,Linux中都是通过基本的编译工具gcc来进行,比如要编译main.c这个文件,可以使用gcc main.c -o main.但是如果源文件很多...,这种方法就不适用了,所以,必须要学会使用Makefile。...(3)自动化变量 $< 第一个依赖文件 $^ 全部的依赖文件 $@ 目标 使用自动化变量可以使Makefile文件更好地修改,类似于C语言中使用宏定义来封装,比如将前面写的Makefile进行改造 cc...%.c,%.o,x.c.c bar.c)" 当调用patsubst函数的时候,会去将后面的x.c.c、bar.c前面的%.c匹配,匹配成功则变成.o文件 (2)取文件名函数-notdir echo...我们把main.cmp3.c分别放在不同的文件夹module1module2里,体现实际工程的模块思想,然后建一个include文件夹用来存放头文件。

84450

Makefile教程

与去除目录函数notdir获取目标文件列表 OBJ = $(patsubst %.cpp,${DIR_OBJ}/%.o,$(notdir ${SRC})) TARGET = main.out BIN_TARGET...(2)wildcard、notdirpatsubst均是Makefile内置函数,各含义如下: wildcard:扩展通配符notdir:去除路径; patsubst:替换通配符。...(4)Makefile对一些简单变量的引用,可以不使用”()””{}”来标记变量名,而直接使用$x的格式来实现,此种用法仅限于变量名为单字符的情况。另外自动化变量也使用这种格式。...通配符*与%的区别是什么?...通配符*则不具备上述功能。尤其是在Makefile,当变量定义或者函数调用时,通配符%的展开功能就失效了。此时需要借助wildcard函数。通配符*常用于wildcard函数,二者应用范围不同。

3.9K53

makefile 常用函数notdir、wildcard、patsubst

notdir,wildcardpatsubstmakefile几个有用的函数,以前没留意过makefile函数的用法,今天稍微看看~ 1、makefile里的函数 makefile里的函数使用...,取变量的值类似,是以一个‘$’开始,然后是一个括号里面是函数名需要的参数列表,多个变量用逗号隔开,像这样 return = $(functionname arg1,arg2,arg3…)。...3、notdir 使用:SRC = $(notdir wildcard) 去除所有的目录信息,SRC里的文件名列表将只有文件名。...4、patsubst 使用:OBJ = (patsubst %.o %.c (SRC)) patsubst是patten substitude的缩写,匹配替代的意思。...   # 你可以隨便更改散發這個文件   # 而不需要給原作者什榮譽。   # (你好意思?)

1.5K40

一个通用的makefile(一)

最近在编写Android编译系统时,需要遍历每一个目录下每一个文件夹下的makefile,网上的方法有些繁琐 ;就直接贴上自己遍历子目录深度为1;(for  temporary)(之后会继续更新) 下面是我的一个简单实例工程...1、根目录(相对于项目而言)的makefile 1 #获取当前目录下的子目录名字 2 subdir = $(shell ls -l | grep ^d | awk '{print $$9}') 3...BIN_DIR)/main 12 13 14 CFLAGS := -g 15 CFLAGS += -Wall 16 CFLAGS += -D_FORTIFY_SOURCE=2 17 18 19 #patsubst...是替换通配符,会把第一个%.c替换成第二个参数的%.c, 20 #wildcard 是把指定目录 $(SRC_DIR)下面的.c文件全部展开 21 #notdir 是把展开的文件去掉路径信息 22 SOURCES...:= $(patsubst %.c,%.c,$(notdir $(wildcard $(SRC_DIR)/*.c))) \ 23 24 OBJECTS := $(addprefix $(OBJ_DIR

1.9K111

Makefile中部分函数的使用

notdir 把展开的文件的路径去掉,只显示文件名而不包含其路径信息,例如: FILES =(notdir (SOURCES)) 这行的作用是把上面以 .c 结尾的文件的文件列表附带的路径去掉,只显示符合条件的文件名...patsubst ( patten substitude, 匹配替换的缩写)函数。它需要3个参数:第一个是一个需要匹配的式样,第二个表示用什么来替换它,第三个是一个需要被处理的由空格分隔的字列。...参考文献 Makefileforeach函数使用方法:https://blog.csdn.net/yanlaifan/article/details/71402771 Makefilewildcard...、notdirpatsubst函数的用法:https://blog.csdn.net/zqj6893/article/details/9066225 Makefile的wildcard用法:Makefile...: Frytea Title: Makefile中部分函数的使用 Link: https://blog.frytea.com/archives/466/ Copyright: This work

1.3K40

LinuxMakefile文件详解

clean: 清理规则,执行 make clean 时将删除生成的可执行文件中间目标文件。 3. 使用 Makefile 在项目目录,执行以下命令: 构建项目: make 或 make all。...变量引用: 使用 @ 表示目标,^ 表示所有依赖文件, 通配符使用 % 通配符来表示一类文件,例如 %.o: %.c。 Makefile 是一个非常强大的工具,可以用于管理复杂的项目结构。...变量 在 Makefile ,可以使用变量来存储引用值。在上述例子,CC CFLAGS 就是变量,分别存储编译器编译选项。 13....在上述例子,默认规则是 all: target1 target2。 15. 通配符 Makefile 支持通配符,用于匹配文件列表。常用的通配符包括 *(匹配任意字符) %(匹配任意字符序列)。...条件语句 Makefile 可以使用条件语句,根据不同的条件执行不同的指令。

58610

分享一个很通用c语言的Makefile

编写Makefile是一个苦乐交织的事情,快乐是因为从一堆需要手工逐个处理的编译过程,进步到一条命令完成,看着代码顺畅的在屏幕上滚动,编译为最终的产品,那个过程无比愉悦;而痛苦则是,写代码已经很累了,写完代码还要编写...Makefile,这多出来的一点工作,很有点最后一根稻草的感觉。...最近整理手头的几个项目,把C语言类的Makefile抽象、合并了一下,形成了一个比较通用的编译脚本,这里分享一下: #定义编译器 CC=gcc #自己特定的编译参数,这里仅为示例,这个参数是消除mac编译...$(wildcard src/*.c)) OBJS = $(patsubst %.c,%.o,$(OBJSSOURCE)) #主程序名 KEYS = main DEPS = $(addprefix...脚本简单修改可以适应各种环境,比如下面再贴一个ios使用的,ios如果非越狱的话,直接编译成可执行文件是没有意义的,这里我们假设编译成.a库文件,供xcode来调用: #ios交叉编译器 CC=$(shell

99340

makefile文件编写「建议收藏」

makefile文件用于管理组织代码工程的编译链接,其不是可执行文件,其被make工具解析并完成相关动作,下面笔者将介绍makefile中常用的一些语法说明: 1、文件包含: 语法:include...通常我们将一些配置选项分开成一个独立的makefile文件,这样有利于makefile文件的管理,或将模块代码的依赖关系需要编译的文件信息独自写到一个 makefile文件,最终通过include命令形成一个顶层...makefile文件来完成整个工程代码的编译链接。...ctest2.c添加到C_SRCS,其代码如下所示: C_SRCS := C_SRCS += test1.c test2.c 在makefile中有一类特殊的变量,其名称为 自动变量,自动变量的值会依据规则的...$< 为规则第一个prerequisite名称 3、内置命令: Makefile内置了一些常用的命令,有字符串处理函数subst、patsubst、strip、findstring、filter、filter-out

2.3K10

linux下源码安装

/configure生成config.h  configure.h使用autoconfautomake命令的shell脚本,可以通过autoscan自动生成或手写  acconfig.h包含了configure.in...未定义的宏 autoscan–>autoheader–>aclocal–>automake|autoconf ?...$(notdir )取文件名部分 $(suffix )取后缀扩展名 $(basename )取文件名前部分 ----------------...usr/bin下   (卸载使用make uninstall,清理make产生的缓存文件使用make clean) ####4.软件包管理工具  linux分为桌面系统领域和服务器系统领域,服务器系统...:rethat、suse、gentoo、arch、fedora、国产中标麒麟;桌面系统:centos、ubuntu  linux软件包分为两大阵营:RPMDPKG,与bin安装源码安装相比,管理包工具使用数据库方式管理软件包包的依赖项

7K41

Linux CC++工程可生成 ELF、动静态库文件的通用 Makefile(二)

今天对之前写的 Linux C/C++工程可生成ELF、动/静态库文件的通用Makefile - TypeCodes 文章里面的 Makefile 进行了优化,增加了在当前目录生成单个可执行文件的功能...如上图所示,我的一个 myRedisSentinel 目录包含了多个 cpp 文件,然后只要在 SINGLE_BIN 里面配置想要输出的可执行文件名称,最后执行 make -j4 命令即可生成。...2 附录:Makefile 文件源码 已将下面的 Makefile 源文件托管到 github仓库: 1、GitHub: https://github.com/vfhky/General_Makefile...$(CURDIR)/%.o: $(CURDIR)/%.c @$(call gen_depend,$(patsubst %.o,%.d,$@),$<,$@,$(CC)) $(CC) $(CFLAGS...) -o $@ -c $< $(CURDIR)/%.o: $(CURDIR)/%.cpp @$(call gen_depend,$(patsubst %.o,%.d,$@),$<,$@,$(CXX

8110

Linux CC++工程可生成 ELF、动静态库文件的通用 Makefile(二)

今天对之前写的 Linux C/C++工程可生成ELF、动/静态库文件的通用Makefile - TypeCodes 文章里面的 Makefile 进行了优化,增加了在当前目录生成单个可执行文件的功能...如上图所示,我的一个 myRedisSentinel 目录包含了多个 cpp 文件,然后只要在 SINGLE_BIN 里面配置想要输出的可执行文件名称,最后执行 make -j4 命令即可生成。...2 附录:Makefile 文件源码 已将下面的 Makefile 源文件托管到 github仓库: 1、GitHub: https://github.com/vfhky/General_Makefile...$(CURDIR)/%.o: $(CURDIR)/%.c @$(call gen_depend,$(patsubst %.o,%.d,$@),$<,$@,$(CC)) $(CC) $(CFLAGS...) -o $@ -c $< $(CURDIR)/%.o: $(CURDIR)/%.cpp @$(call gen_depend,$(patsubst %.o,%.d,$@),$<,$@,$(CXX

7510
领券