`
iamicebergs
  • 浏览: 26899 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

makefile中的wildcard和patsubst 函数

阅读更多
参考:http://blogold.chinaunix.net/u/6889/showart_461187.html

makefile 里的函数跟它的变量很相似——使用的时候,你用一个 $ 符号跟开括号,函数名,空格后跟一列由逗号分隔的参数,最后用关括号结束。例如,在 GNU Make 里有一个叫 'wildcard' 的函 数,它有一个参数,功能是展开成一列所有符合由其参数描述的文件名,文件间以空格间隔。你可以像下面所示使用这个命令:
    
    SOURCES = $(wildcard *.c)
    
    这行会产生一个所有以 '.c' 结尾的文件的列表,然后存入变量 SOURCES 里。当然你不需要一定要把结果存入一个变量。
    另一个有用的函数是 patsubst ( patten substitude, 匹配替换的缩写)函数。它需要3个参数——第一个是一个需要匹配的式样,第二个表示用什么来替换它,第三个是一个需要被处理的由空格分隔的字列。例如,处理那个经过上面定义后的变量,
    
    OBJS = $(patsubst %.c,%.o,$(SOURCES))
    
    这行将处理所有在 SOURCES 字列中的字(一列文件名),如果它的 结尾是 '.c' ,就用 '.o' 把 '.c' 取代。注意这里的 % 符号将匹 配一个或多个字符,而它每次所匹配的字串叫做一个‘柄’(stem) 。 在第二个参数里, % 被解读成用第一参数所匹配的那个柄。

分享到:
评论

相关推荐

    MakeFile 中文手册.pdf

    Makefile还提供了许多内置函数,如wildcard、patsubst、notdir等,它们可以用来处理文件名匹配和转换,使得编写Makefile更为灵活和强大。 6. 清理工作 在Makefile中通常会定义一个名为clean的目标,用来清除编译...

    makefile的规则,命令,函数

    在这个文档中,我们将深入探讨Makefile的规则、命令和函数,以及如何利用它们来优化开发过程。 1. **Makefile规则(Rules)** Makefile中的规则定义了目标文件(通常是编译后的可执行文件或库)及其依赖文件。规则...

    Makefile常用命令

    Makefile 常用命令 Makefile 是一種自动化构建工具,通过编写 Makefile 文件来定义构建规则和依赖关系。...以上是 Makefile 中常用的命令和函数,通过这些命令和函数,可以实现自动化构建和字符串处理。

    Makefile规则、Makefile规则、Makefile的条件执行、Makefile函数、Makefile库的生成和使用

    Makefile 支持一些内置函数,如`$(shell command)`执行shell命令,`$(patsubst pattern,replacement,text)`替换文本模式,`$(wildcard pattern)`匹配文件名等。这些函数增强了Makefile的灵活性。 通过理解和掌握...

    makefile中文手册

    Make还提供了内置函数,如`$(patsubst)`用于字符串替换,`$(wildcard)`用于获取目录中的文件列表。 3. **规则和目标**:目标通常是需要构建的文件,如可执行文件或库。依赖项是构建目标所需的文件。当依赖文件更新...

    makefile函数整理.pdf

    归纳整理makefile函数,包括 substr/patsubst/strip/findstring/filter/filter-out/sort/word/wordlist/words/firstword/dir/ notdir/suffix/basename/addsuffix/addprefix/join/ wildcard/foreach/error/warning ...

    跟我一起写Makefile(整理版.pdf

    Makefile提供了一些内置函数,例如wildcard、patsubst等,用于文件名的匹配和文本处理。 9. Makefile的命令执行 在Makefile中,每个规则都可能包含多个命令,这些命令在执行时是逐行解释执行的。如果命令执行失败,...

    makefile中文手册.zip

    - `make`提供了许多内置函数,如`$(wildcard ...)`用于匹配目录下的文件,`$(patsubst ...)`用于字符串替换,`$(addprefix ...)`用于在每个文件名前添加前缀等。 7. **条件语句**: - 条件语句(Conditional ...

    GUN makefile 中文手册 V 3.8

    同时,makefile还包含多种内置函数,如$(wildcard)用于匹配目录下的所有文件,$(patsubst)进行字符串替换等。 5. **隐含规则**:make有一些预设的隐含规则,比如编译C/C++源文件,它们简化了常见任务的规则编写。...

    Makefile详解 && Makefile中文文档.zip

    另外,Makefile还支持条件语句(ifeq, ifneq等)和函数(比如patsubst,wildcard等),使得编写更复杂的构建逻辑成为可能。 “GNU_Make_3.80_cn.pdf”是GNU Make 3.80版本的中文文档,可能会涵盖更多细节,如Make的...

    Makefile手册中文版

    第八章“make的内嵌函数”向读者介绍了make的内嵌函数及其调用语法,包括文本处理函数(如subst、patsubst、strip等)和文件名处理函数(如wildcard、notdir等)的使用。 总结来看,GNU Make是一个用于简化编译过程...

    makefile学习参考资料,仅供学习使用

    Makefile是Linux系统中的一个构建 Automation 工具,它可以自动地编译、链接和构建项目。Makefile文件中定义了一系列的规则来指定哪些文件需要先编译,那些文件需译,那些文件需要重新编译,甚至于进行更复杂的功能...

    makefile详细介绍(中文)

    `makefile`还提供了一些内建函数,如`$(patsubst pattern,replacement,text)`用于模式替换,`$(wildcard pattern)`用于查找匹配的文件名等。 四、规则与命令 规则是`makefile`的核心,由目标、依赖项和命令组成。...

    Makefile中文HTML帮助文档

    函数如`$(wildcard)`用于匹配文件名,`$(patsubst)`进行字符串替换。 5. **目标的模式匹配**:使用通配符`*`和`?`可以定义针对一类文件的规则。例如: ``` %.o: %.c gcc -c -o $@ $< ``` 这条规则将所有`.c`...

    通用Makefile及解释.pdf

    4. patsubst函数:这个函数用于替换文本字符串中的模式。它接收三个参数,第一个参数指定模式,第二个参数指定替换内容,第三个参数为待处理的字符串。在上述内容中,它被用于将源文件名后缀从.cpp替换为.o,用于...

    makefile实例

    此外,`Makefile`还支持条件语句(ifeq, ifneq等)和函数(如patsubst, wildcard等),可以实现更复杂的逻辑和路径处理。例如,你可以使用`wildcard`函数获取当前目录下的所有`.c`文件,然后自动构建规则: ```make...

    GNU_makefile_gnumakefilepdf_GNU_

    函数如$(wildcard)可以匹配目录中的所有文件,$(patsubst)则可以对字符串进行模式匹配替换。 此外,书中还会介绍如何处理隐含规则,这些规则是make内置的,可以自动推断如何从某些常见的源文件类型(如.c)生成目标...

    跟我一起写Makefile-陈皓.pdf

    例如,`wildcard`函数可以获取符合特定模式的文件名列表,`patsubst`函数可以替换文件名中的模式。此外,Makefile中还可以定义变量,变量可以在Makefile的多处使用,这样可以避免重复编写相同的文件名或路径。 当...

    跟我一起写Makefile.zip

    函数如`$(wildcard)`可以获取指定模式的所有文件,`$(patsubst)`可以进行字符串替换,使得Makefile更具灵活性。 理解并熟练使用Makefile,不仅可以帮助开发者规范构建过程,还能实现跨平台的构建一致性。通过...

Global site tag (gtag.js) - Google Analytics