Makefile常用信息查询页
这是博主第一次尝试在博客中使用markdown来写博文,目前感觉还不错。大家也可以尝试尝试。
符号说明
符号 | 作用 |
---|---|
换行符 | |
@ | 放在命令前面隐藏命令输出 |
- | 放在命令前面忽略命令错误 |
: | 以来规则定义符号,即目标:依赖 |
.PHONY | 显式声明伪目标 |
$@ | 表示规则中的目标文件集 |
$% | 仅当目标是函数库文件时,表示规则中的目标成员名 |
$< | 依赖目标中的第一个目标名字,如果依赖目标是以模式(%)定义的,那么$<将是符合模式的一系列的文件集。 注意,其是一个一个取出来的 |
$? | 所有同目标相比更新的依赖目标的集合。以空格间隔 |
$^ | 所有的依赖目标的集合。以空格间隔,且会去重 |
$+ | 和$^作用相似,但不会去重 |
$* | 表示目标模式中%及其之前的部分 |
D/F | 表示路径和文件名部分。$(@F)表示$@的文件部分 |
函数说明
函数 | 说明 |
---|---|
$(subst <from>, <to>, <text>) | 把text中的from替换为to |
$(patsubst <pattern>,<replacement>,<text>) | 模式替换 |
$(strip <string>) | 去掉string字串中开头和结尾的空字符 |
$(findstring <find>,<in>) | 在in中找find字串 |
$(filter <pattern>,<text>) | 过滤text,并保留符合pattern模式的字符串 |
$(filter-out <pattern>,<text>) | 和filter相反 |
$(sort <list>) | 给字串list中的单词升序排序 |
$(word <n>,<text>) | 取字串<text>中第n个单词 |
$(wordlist <s>,<e>,<text>) | 从text中取从 |
$(words <text>) | 统计text的单词个数 |
$(firstword <text>) | 取text的第一个单词 |
$(dir <names>) | 从文件名names中取出目录部分 |
$(notdir <names>) | 从文件名names种取出非目录部分 |
$(suffix <names>) | 取出文件名后缀 |
$(basename <names>) | 取出文件名部分 |
$(addsuffix <suffix>,<names>) | 把后缀suffix加到names中每个单词后面 |
$(addprefix <prefix>,<names>) | 把前缀prefix加到names每个单词前面 |
$(join <list1>,<list2>) | 把list1加到list2后面 |
$(foreach <var>,<list>,<text>) | 把list里的单词一一取出,放到var中,然后执行text所包含的表达式,表达式会返回一个字符串。 多个字符串用空格间隔。 foreach会返回这样一个字符串列表。 |
$(if <condition>,<then-part>) | if语句 |
$(call <expression>,<parm1>,<parm2>,<parm3>) | 调用表达式,表达式中的$(1),$(2),$(3)会替换为三个参数。 |
$(origin <variable>) | origin会告诉我们这个变量是哪里来的。 |
$(error <text>) | 产生一个致命错误,text是错误信息,退出 |
$(waring <text>) | 输出一个警告信息,而make继续执行 |
$(shell <command>) | 使用shell执行command命令 |