参考: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还提供了许多内置函数,如wildcard、patsubst、notdir等,它们可以用来处理文件名匹配和转换,使得编写Makefile更为灵活和强大。 6. 清理工作 在Makefile中通常会定义一个名为clean的目标,用来清除编译...
在这个文档中,我们将深入探讨Makefile的规则、命令和函数,以及如何利用它们来优化开发过程。 1. **Makefile规则(Rules)** Makefile中的规则定义了目标文件(通常是编译后的可执行文件或库)及其依赖文件。规则...
Makefile 常用命令 Makefile 是一種自动化构建工具,通过编写 Makefile 文件来定义构建规则和依赖关系。...以上是 Makefile 中常用的命令和函数,通过这些命令和函数,可以实现自动化构建和字符串处理。
Makefile 支持一些内置函数,如`$(shell command)`执行shell命令,`$(patsubst pattern,replacement,text)`替换文本模式,`$(wildcard pattern)`匹配文件名等。这些函数增强了Makefile的灵活性。 通过理解和掌握...
Make还提供了内置函数,如`$(patsubst)`用于字符串替换,`$(wildcard)`用于获取目录中的文件列表。 3. **规则和目标**:目标通常是需要构建的文件,如可执行文件或库。依赖项是构建目标所需的文件。当依赖文件更新...
归纳整理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提供了一些内置函数,例如wildcard、patsubst等,用于文件名的匹配和文本处理。 9. Makefile的命令执行 在Makefile中,每个规则都可能包含多个命令,这些命令在执行时是逐行解释执行的。如果命令执行失败,...
- `make`提供了许多内置函数,如`$(wildcard ...)`用于匹配目录下的文件,`$(patsubst ...)`用于字符串替换,`$(addprefix ...)`用于在每个文件名前添加前缀等。 7. **条件语句**: - 条件语句(Conditional ...
同时,makefile还包含多种内置函数,如$(wildcard)用于匹配目录下的所有文件,$(patsubst)进行字符串替换等。 5. **隐含规则**:make有一些预设的隐含规则,比如编译C/C++源文件,它们简化了常见任务的规则编写。...
另外,Makefile还支持条件语句(ifeq, ifneq等)和函数(比如patsubst,wildcard等),使得编写更复杂的构建逻辑成为可能。 “GNU_Make_3.80_cn.pdf”是GNU Make 3.80版本的中文文档,可能会涵盖更多细节,如Make的...
第八章“make的内嵌函数”向读者介绍了make的内嵌函数及其调用语法,包括文本处理函数(如subst、patsubst、strip等)和文件名处理函数(如wildcard、notdir等)的使用。 总结来看,GNU Make是一个用于简化编译过程...
Makefile是Linux系统中的一个构建 Automation 工具,它可以自动地编译、链接和构建项目。Makefile文件中定义了一系列的规则来指定哪些文件需要先编译,那些文件需译,那些文件需要重新编译,甚至于进行更复杂的功能...
`makefile`还提供了一些内建函数,如`$(patsubst pattern,replacement,text)`用于模式替换,`$(wildcard pattern)`用于查找匹配的文件名等。 四、规则与命令 规则是`makefile`的核心,由目标、依赖项和命令组成。...
函数如`$(wildcard)`用于匹配文件名,`$(patsubst)`进行字符串替换。 5. **目标的模式匹配**:使用通配符`*`和`?`可以定义针对一类文件的规则。例如: ``` %.o: %.c gcc -c -o $@ $< ``` 这条规则将所有`.c`...
4. patsubst函数:这个函数用于替换文本字符串中的模式。它接收三个参数,第一个参数指定模式,第二个参数指定替换内容,第三个参数为待处理的字符串。在上述内容中,它被用于将源文件名后缀从.cpp替换为.o,用于...
此外,`Makefile`还支持条件语句(ifeq, ifneq等)和函数(如patsubst, wildcard等),可以实现更复杂的逻辑和路径处理。例如,你可以使用`wildcard`函数获取当前目录下的所有`.c`文件,然后自动构建规则: ```make...
函数如$(wildcard)可以匹配目录中的所有文件,$(patsubst)则可以对字符串进行模式匹配替换。 此外,书中还会介绍如何处理隐含规则,这些规则是make内置的,可以自动推断如何从某些常见的源文件类型(如.c)生成目标...
例如,`wildcard`函数可以获取符合特定模式的文件名列表,`patsubst`函数可以替换文件名中的模式。此外,Makefile中还可以定义变量,变量可以在Makefile的多处使用,这样可以避免重复编写相同的文件名或路径。 当...
函数如`$(wildcard)`可以获取指定模式的所有文件,`$(patsubst)`可以进行字符串替换,使得Makefile更具灵活性。 理解并熟练使用Makefile,不仅可以帮助开发者规范构建过程,还能实现跨平台的构建一致性。通过...