09 2018 档案
摘要:override指示符 通常在执行 make 时,如果通过命令行定义了一个变量,那么它将替代在 Makefile中出现的同名变量的定义。 就是说,对于一个在 Makefile 中使用常规方式(使用“=”、“:=”或者“define”)定义的变量,我们可以在执行 make 时通过命令行方式重新指定这个
阅读全文
摘要:"include"指示符告诉 make 暂停读取当前的 Makefile,而转去读取"include"指定的一个或者多个文件,完成以后再继续当前 Makefile 的读取。 为什么要include其他文件呢? 1. 对于一些通用的变量定义、通用规则,写在一个文件中,任意目录结构中的makefile想
阅读全文
摘要:$(wildcard PATTERN) 函数功能: 获取匹配 PATTERN 的所有对象 返回值: 使用空格分割的匹配对象列表 1. 示例1
阅读全文
摘要:```makefile #$(strip ) #名称:去空格函数——strip。 #功能:去掉字串中开头和结尾的空字符,并将中间的多个连续空字符(如果有的话)合并为一个空字符。 #返回:返回被去掉空格的字符串值。 #说明: 空字符包括 空格,tab等不可显示的字符 #把字串" abc"开头的空格去掉,结果是"abc"。 str1 := abc str2 := abc str3...
阅读全文
摘要:函数名称:排序函数 $(sort LIST) 函数功能:给字串"LIST"中的单词以首字母为准进行排序(升序),并去掉重复的单词。 返回值:空格分割的没有重复单词的字串。 函数说明:两个功能,排序和去字串中的重复单词。可以单独使用其中一个功能。
阅读全文
摘要:shell函数不同于除“wildcard”函数之外的其它函数。make可以使用它来和外部通信。 函数功能:函数“shell”所实现的功能和shell中的引用(``)相同。实现对命令的扩展。这就意味着需要一个shell 命令作为此函数的参数,函数的返回结果是此命令在shell中的执行结果。make仅仅
阅读全文
摘要:格式:\$(patsubst pattern,replacement,text) 名称:模式字符串替换函数——patsubst。 功能:查找text中的单词(单词以“空格”、“Tab”或“回车”“换行”分隔)是否符合模式pattern,如果匹配的话,则以replacement替换。 这里,patte
阅读全文
摘要:origin 函数的作用是告诉你变量是哪里来的,其出生状况如何,他并不改变变量。 函数语法: \$(origin ) 为变量的名字,而不是引用,所以一般没有"\$"字符在前。 origin 函数通过返回值来告诉你 的出生情况。下面用实例说明: 1. 当从来未定义过该变量时,origin 函数返回 "
阅读全文
摘要:```makefile #if 函数的语法是: #$(if , ) #或 #$(if ,, ) #参数是if的表达式,如果其返回的为非空字符串,那么这个表达式就相当于返回真,于是,会被计算,否则会被计算 # #if函数的返回值是, # 如果为真(非空字符串),那个会是整个函数的返回值, # 如果为假(空字符串),那么会是整个函数的返回值,此时如果没有被定义,那么,整个函数返回空字串...
阅读全文
摘要:```makefile #$(foreach ,,) #把参数中的单词逐一取出放到参数所指定的变量中,然后再执行所包含的表达式。每一次会返回一个字符串,循环过程中, #的所返回的每个字符串会以空格分隔,最后当整个循环结束时,所返回的每个字符串所组成的整个字符串(以空格分隔)将会是foreach函数的返回值。 names := a b c d files := $(foreach n,$(name...
阅读全文
摘要:```makefile #$(findstring , ) #功能:在字串中查找字串。 #返回:如果找到,那么返回,否则返回空字符串。 str1 := a b c str2 := b c #第一个函数返回“a”字符串,第二个返回空字符串 all: @echo $(findstring a,$(str1)) @echo $(findstring a,$(str2)) ```
阅读全文
摘要:函数原型: $(eval text) 它的意思是 text 的内容将作为makefile的一部分而被make解析和执行。 需要注意的是该函数在执行时会对它的参数进行两次展开,第一次展开是由函数本身完成,第二次是函数展开后的结果被作为makefile内容时由make解析时展开. 1.函数二次展开示例
阅读全文
摘要:call函数是唯一一个可以创建定制化参数函数的引用函数。 支持对自定义函数的引用; 支持将一个变量定义为一个复杂的表达式,用call函数根据不同的参数对它进行展开来获取不同的结果; 函数语法: $(call VARIABLE,PARAM,PARAM,...) 函数功能: 在执行时,将它的参数"PAR
阅读全文
摘要:目录搜索 在一个大工程中,一般会将源文件和中间生成文件放在不同的目录,而且不会污染源码所在的目录。当需要编译不同目录下的源文件时,就需要指定路径,那么怎样让路径的表示以及源文件的引用更加灵活。就要用到目录搜索功能。 VPATH VPATH:指定依赖文件的搜索目录,当规则的依赖文件在当前目录不存在时,
阅读全文
摘要:强制目标 1. 定义 如果一个规则(rule_A)既没有依赖也没有命令,仅有目标(Targe_A),并且目标名不冲突。那么,在执行这个规则的时候,目标总被认为是更新过的。如果这个目标(Target_A)作为另一个规则(rule_B)的依赖时,因为依赖总被认为更新过,那么依赖所在的规则中的命令总会被执
阅读全文
摘要:makefile 调试 1. 添加调试信息 执行到error时会中断,warning不中断makefile的执行, info不打印当前makefile名和行号。 a.$(warning "some text") warning 不中断makefile的执行,打印warning中的信息,并打印当前ma
阅读全文
摘要:define&endef 1. 命令包(canned recipes)&多行变量(muti line variables) The define directive is followed on the same line by the name of the variable being defi
阅读全文
摘要:1 变量的定义 A variable is a name defined in a makefile to represent a string of text, called the variable’s value. These values are substituted by explici
阅读全文
摘要:伪目标 1. 伪目标的语法: 在书写伪目标时,首先需要声明伪目标,然后再定义伪目标规则. 1.1 声明伪目标: 1.2 定义伪目标规则: 2. 伪目标的作用: 2.1 避免目标名与文件名冲突 也即,如果指定了伪目标,那么伪目标一定会被执行。 2.2 提高执行效率 当一个目标被声明为 伪目标后,mak
阅读全文

浙公网安备 33010602011771号