
Makefile
不闻窗外事
学无止境
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Makefile 变量MAKEFILE_LIST
make程序在读取多个makefile文件时,包括由环境变量“MAKEFILES”指定、命令行指定、当前工作下的默认的以及使用指示符“include”指定包含的,在堆这些文件进行解析执行之前make读取的文件名将会被自动依次追加到变量“MAKEFILE_LIST”的定义域中。这样我们就可以通过测试此变量的最后一个字来获取当前make程序正在处理的makefile文件名。具体的说就是在一个mak...原创 2019-04-04 12:52:02 · 9215 阅读 · 0 评论 -
Makefile wildcard函数说明
$(wildcard pattern)函数名称:获取匹配模式文件名函数— wildcard 函数功能:列出当前目录下所有符合模式“ pattern”格式的文件名。 返回值:空格分割的、存在当前目录下的所有符合模式“ pattern”的文件名 函数说明:“ pattern”使用shell可识别的通配符,包括“ ?”(单字符)、“ *”(多字符)等。 函数示例:$(wildcard*.c...原创 2019-04-02 18:35:48 · 430 阅读 · 0 评论 -
Makefile call函数说明
“ call”函数是唯一一个可以创建定制化参数函数的引用函数。使用这个函数可以实现对用户自己定义函数引用。我们可以将一个变量定义为一个复杂的表达式,用“ call”函数根据不同的参数对它进行展开来获得不同的结果。函数语法:$(call variable,param,param,...) 函数功能:在执行时,将它的参数“ param”依次赋值给临时变量“ $(1)”、“ $(2)”call ...原创 2019-04-02 18:15:22 · 8413 阅读 · 0 评论 -
Makefile与前缀后缀相关函数suffix、basename、addsuffix、addprefix
basename名称:取前缀函数——basename。 语法:$(basename <names...>) 功能:从文件名序列 <names> 中取出各个文件名的前缀部分。 返回:返回文件名序列 <names> 的前缀序列,如果文件没有前缀,则返回空字串。 示例:SRC := src/main.c src/hello.cOBJ := $(bas...原创 2019-03-28 17:36:32 · 6996 阅读 · 0 评论 -
Makefile的$@、$%、$?、$^ 、$+、$*自动化变量说明
自动变量含义$@ :表示规则中的目标文件集。在模式规则中,如果有多个目标,那么, $@ 就是匹配于目标中模式定义的集合。 $% :仅当目标是函数库文件时,表示规则中的目标成员名。例如,如果一个目标是 foo.a(bar.o),那么, $% 就是 bar.o , $@ 就是 foo.a 。如果目标不是函数库文件(Unix 下是 .a , Windows下是 .lib ),那么,其值为空 ...原创 2019-03-28 17:04:22 · 22325 阅读 · 3 评论 -
makefile 文本处理函数subst、patsubst、filter
$(subst from,to,text)函数名称:字符串替换函数— subst。 函数功能:把字串“ text”中的“ from”字符替换为“ to”。 返回值:替换后的新字符串。 示例:$(subst ee,EE,feet on the street)替换“ feet on the street”中的“ ee”为“ EE”,结果得到字符串“ fEEt on the strEEt”。...原创 2019-04-01 17:45:08 · 3910 阅读 · 0 评论 -
makefile eval函数说明
函数说明函数“ eval”是一个比较特殊的函数。使用它可以在Makefile中构造一个可变的规则结构关系(依赖关系链),其中可以使用其它变量和函数。函数“ eval”对它的参数进行展开,展开的结果作为Makefile的一部分, make可以对展开内容进行语法解析。展开的结果可以包含一个新变量、目标、隐含规则或者是明确规则等。也就是说此函数的功能主要是:根据其参数的关系、结构,对它们进行替换展开。...原创 2019-04-01 17:26:55 · 1512 阅读 · 0 评论 -
Makefile中.PHONY的作用
单词phony (即phoney)的意思是:伪造的,假的。来自collins的解释是:If you describe something as phoney, you disapprove of it because it is false rather than genuine. 那么,在Makefile中,.PHONY后面的target表示的也是一个伪造的target, 而不是真实...原创 2019-03-27 15:31:00 · 5605 阅读 · 0 评论 -
Makefile 中=和:= 的区别
= 是最基本的赋值:= 是覆盖之前的值?= 是如果没有被赋值过就赋予等号后面的值+= 是添加等号后面的值makefile中“=”和“:=”的区别到底有什么区别,看两个简单的makefile第一个x = fooy = $(x) barx = xyzall: @echo "$(y)"执行make后,得到结果xyz bar第二个x := fooy ...原创 2019-03-27 17:48:03 · 3402 阅读 · 0 评论 -
Makefile 递归获取某一类文件
代码:SRC_EXT = cSRC_PATH = testrwildcard = $(foreach d, $(wildcard $1*), $(call rwildcard,$d/,$2) \ $(filter $2, $d))SOURCES := $(call rwildcard, $(SRC_PATH), %.$(SRC_EXT))all: @echo "SOUR...原创 2019-04-03 09:25:17 · 1240 阅读 · 2 评论