makefile之call函数】的更多相关文章

使用函数 ———— 在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能.make所支持的函数也不算很多,不过已经足够我们的操作了.函数调用后,函数的返回值可以当做变量来使用. 一.函数的调用语法 函数调用,很像变量的使用,也是以“$”来标识的,其语法如下: $(<function> <arguments> ) 或是 ${<function> <arguments>} 这 里,<function>就是函数名,m…
1.1       字符操作函数使用 在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能.make所支持的函数也不算很多,不过已经足够我们的操作了.函数调用后,函数的返回值可以当做变量来使用.函数调用,很像变量的使用,也是以"$"来标识的,其语法如下:$(<function> <arguments> )或是${<function> <arguments>}这里,<function>就是函数…
Makefile 中的函数 Makefile 中自带了一些函数, 利用这些函数可以简化 Makefile 的编写. 函数调用语法如下: $(<function> <arguments>) # 或者 ${<function> <arguments>} <function> 是函数名 <arguments> 是函数参数 1.1 字符串函数 字符串替换函数: $(subst <from>,<to>,<text&…
截取自<跟我一起写Makefile> (1)  $(subst <from>, <to>, <text>) 名称: 字符串替换函数 subst 功能: 把字符串<text>中的<from>字符串替换成<to> 返回: 被替换后的字符串 eg:    $(subst ee, EE, feet on the street) 把"feet on the street" 中的"ee" 替换成…
一.函数的调用语法 函数调用与变量一样,也是以“$”来标识的,其语法如下: $(<function> <arguments>) 或是 ${<function> <arguments>} <function>就是函数名,<arguments>是函数的参数,参数间以逗号“,”分隔,而函数名和参数之间以“空格”分隔.函数调用以“$”开头,以圆括号或花括号把函数名和参数括起. 二.字符串处理函数 1)$(subst <from>,…
shell函数不同于除"wildcard"函数之外的其它函数.make可以使用它来和外部通信. 函数功能:函数"shell"所实现的功能和shell中的引用(``)相同.实现对命令的扩展.这就意味着需要一个shell 命令作为此函数的参数,函数的返回结果是此命令在shell中的执行结果.make仅仅对它的回返结果进行处理:make将函数返回结果中的所有换行符("\n")或者一对"\n\r"替换为单空格:并去掉末尾的回车符号(&…
origin 函数的作用是告诉你变量是哪里来的,其出生状况如何,他并不改变变量. 函数语法: $(origin ) 为变量的名字,而不是引用,所以一般没有"$"字符在前. origin 函数通过返回值来告诉你 的出生情况.下面用实例说明: 当从来未定义过该变量时,origin 函数返回 "undefined" . 如下面的 Makefile 代码: all: @echo $(origin V) 运行输出: $ make undefined 如果该变量为环境变量,那么…
调试程序的时候,在linux编译器上可以编译通过,但是编译生成的firmware烧录到板子上的后出现以下异常: can't resolve symbol,无法解析元素符号. review一下code,定义setBuappValue这个api的.c文件的部分makefile如下 HI_PKG_NAME = odlapi HI_APP_NAME = libhi_odlapi.so HI_APP_TYPE = so 可以看到这个api实际上会生成libhi_odlapi.so这个库.编译没有问题是因为…
subst字符串替换函数 $(subst <from>, <to>, <text>),把<text>中的<from>字符串替换成<to>,返回被替换过的字符串 SRC:=/mnt/hgfs/share/123 DES:=$(subst /mnt,/root,$(SRC)) #ATTENTION:是,/root不是, /root all: @echo $(SRC) @echo $(DES) /mnt/hgfs/share/123 /ro…
$(wildcard PATTERN) 函数功能: 获取匹配 PATTERN 的所有对象 返回值: 使用空格分割的匹配对象列表 1. 示例1…
#$(strip <string> ) #名称:去空格函数--strip. #功能:去掉<string>字串中开头和结尾的空字符,并将中间的多个连续空字符(如果有的话)合并为一个空字符. #返回:返回被去掉空格的字符串值. #说明: 空字符包括 空格,tab等不可显示的字符 #把字串" abc"开头的空格去掉,结果是"abc". str1 := abc str2 := abc str3 := a b c all: @echo bound$(s…
函数名称:排序函数-$(sort LIST) 函数功能:给字串"LIST"中的单词以首字母为准进行排序(升序),并去掉重复的单词. 返回值:空格分割的没有重复单词的字串. 函数说明:两个功能,排序和去字串中的重复单词.可以单独使用其中一个功能. list := apple pear orange grape apple all: @echo $(sort $(list))…
格式:$(patsubst pattern,replacement,text) 名称:模式字符串替换函数--patsubst. 功能:查找text中的单词(单词以"空格"."Tab"或"回车""换行"分隔)是否符合模式pattern,如果匹配的话,则以replacement替换. 这里,pattern可以包括通配符"%",表示任意长度的字串.如果replacement中也包含"%",那么…
#if 函数的语法是: #$(if <condition>,<then-part> ) #或 #$(if <condition>,<then-part>,<else-part> ) #<condition>参数是if的表达式,如果其返回的为非空字符串,那么这个表达式就相当于返回真,于是,<then-part>会被计算,否则<else-part>会被计算 # #if函数的返回值是, # 如果<conditi…
#$(foreach <var>,<list>,<text>) #把参数<list>中的单词逐一取出放到参数<var>所指定的变量中,然后再执行<text>所包含的表达式.每一次<text>会返回一个字符串,循环过程中, #<text>的所返回的每个字符串会以空格分隔,最后当整个循环结束时,<text>所返回的每个字符串所组成的整个字符串(以空格分隔)将会是foreach函数的返回值. names…
#$(findstring <find>,<in> ) #功能:在字串<in>中查找<find>字串. #返回:如果找到,那么返回<find>,否则返回空字符串. str1 := a b c str2 := b c #第一个函数返回"a"字符串,第二个返回空字符串 all: @echo $(findstring a,$(str1)) @echo $(findstring a,$(str2))…
call函数是唯一一个可以创建定制化参数函数的引用函数. 支持对自定义函数的引用; 支持将一个变量定义为一个复杂的表达式,用call函数根据不同的参数对它进行展开来获取不同的结果; 函数语法: $(call VARIABLE,PARAM,PARAM,...) 函数功能: 在执行时,将它的参数"PARAM"依次赋给临时变量"$(1)","$(2)".call对参数的数目没有限制,也可以没有参数值. 最后再对VARIABLE展开后的表达式进行处理.…
1.subst字符串替换函数 $(subst <from>,<to>,<text>) 名称:字符串替换函数——subst. 功能:把字串<text>中的<from>字符串替换成<to>.    返回:函数返回被替换过后的字符串. 例子: comma := , empty := space := $(empty) $(empty) string := a b c d bar :=$(subst $(space),$(comma),$(s…
1.wildcard : 扩展通配符    notdir : 去除路径    patsubst :替换通配符 举例:有文件  /a.c   /b.c   /home/a.c   /home/b.c  /home/k.o src=$(wildcard *.c ./home/*.c)file=$(notdir $(src))obj=$(patsubst %.c,%.o,$(src) ) src= a.c b.c   /home/a.c   /home/b.c file= a.c b.c  a.c b…
GNU make支持内置函数以及用户自定义函数,下面结合例子简单介绍一下. gnu make版本: 4.1 一.用户自定义函数 格式: $(call macro-name{, param1 ···}) 解析: macro-name可以是任意宏或变量,macro-name之后是宏的参数,并以逗号为分隔符. 例子: define test-call echo "call has two parameters: $1, $2" endef .PTHONY: simple-test simpl…
使用函数: 在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能.make所支持的函数也不算很多,不过已经足够我们的操作了.函数调用后,函数的返回值可以当做变量来使用. 一.函数的调用语法 函数调用,很像变量的使用,也是以“$”来标识的,其语法如下: $(<function> <arguments> ) 或是 ${<function> <arguments>} 这里,<function>就是函数名,make支持…
makefile高级用法--使用函数 分类: C/C++ 使用函数 ———— 在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能.make所支持的函数也不算很多,不过已经足够我们的操作了.函数调用后,函数的返回值可以当做变量来使用. 一.函数的调用语法 函数调用,很像变量的使用,也是以“$”来标识的,其语法如下: $(<function> <arguments>) 或是 ${<function> <arguments>}…
很详细.很移动的Linux makefile 教程 内容如下: Makefile 介绍 Makefile 总述 书写规则 书写命令 使用变量 使用条件推断 使用函数 make 的运行 隐含规则 使用make更新函数库文件 后序 近期在学习Linux下的C编程,买了一本叫<Linux环境下的C编程指南>读到makefile就越看越迷糊,可能是我的理解能不行. 于是google到了以下这篇文章.通俗易懂.然后把它贴出来,方便学习. 后记,看完发现这篇文章和<Linux环境下的C编程指南>…
在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具 有智能.make所支持的函数也不算很多,不过已经足够我们的操作了.函数调用后,函 数的返回值可以当做变量来使用. 一.函数的调用语法函数调用,很像变量的使用,也是以"$"来标识的,其语法如下:$(<function> <arguments> ) 或是${<function> <arguments>} 这里,<function>就是函数名,mak…
在 Makefile 中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能. make 所支持的函数也不算很多,不过已经足够我们的操作了.函数调用后,函数的返回值可以当做变量来使用. 一.函数的调用语法 函数调用,很像变量的使用,也是以"\(\$\)"来标识的,其语法如下: $(<function> <arguments>) 或是 ${<function> <arguments>} 这里, <function>…
Linux下编译c/c++源码需要编写makefile文件,文章参看 http://blog.sina.com.cn/s/blog_4c4d6e74010009jr.html 一函数的调用语法 二字符串处理函数 subst fromtotext patsubst patternreplacementtext strip string findstring findin filter patterntext filter-out patterntext sort list word ntext w…
使用函数: 在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能.make所支持的函数也不算很多,不过已经足够我们的操作了.函数调用后,函数的返回值可以当做变量来使用. 一.函数的调用语法 函数调用,很像变量的使用,也是以“$”来标识的,其语法如下: $(<function> <arguments> ) 或是 ${<function> <arguments>} 这里,<function>就是函数名,make支持…
本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/gcc-makefile/771.html   使用函数: 在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能.make所支持的函数也不算很多,不过已经足够我们的操作了.函数调用后,函数的返回值可以当做变量来使用. 一.函数的调用语法 函数调用,很像变量的使用,也是以“$”来标识的,其语法如下: $(<fu…
https://www.cnblogs.com/gaojian/archive/2012/10/04/2711494.html对 makefile 中 eval 函数的学习体会 http://blog.sina.com.cn/s/blog_4cd5d2bb0101gsnr.html    对makefile中eval函数的学习 http://blog.csdn.net/chongyang198999/article/details/47859385   Makefile中eval函数用法 htt…
在Makefile中的定义的变量,就像是C/C++语言中的宏一样,他代表了一个文本字串,在Makefile中执行的时候其会自动原模原样地 展开在所使用的地方.其与C/C++所不同的是,你可以在Makefile中改变其值.在Makefile中,变量可以使用在“目标”,“依赖目标”,“ 命令”或是Makefile的其它部分中. 变量的命名字可以包含字符.数字,下划线(可以是数字开头),但不应该含有“:”.“#”.“=”或是空字符(空格.回车等).变量是大小写敏感 的,“foo”.“Foo”和“FOO…