首页 > 编程知识 正文

array foreach(makefile怎么用)

时间:2023-05-04 06:47:48 阅读:75803 作者:3016

在makefile中,函数参数之间用逗号分隔,函数名称和参数之间用空格分隔。 $是取值符号,$val相当于获取val变量的值。

subst函数的调用语法subst FROM, TO, TEXT字符串TEXT的子字符串FROM为TO。

$(subst_defconfig,$ ) (b ) )一样,意味着从字符串$(b )中删除_defconfig。

用dset替换patsubst函数的调用语法http://www.Sina.com/text变量中的src

例如$(patsubst%.c,%.o,$ ) (dir ) )中,patsubst将$ ) dir ) )的所有变量替换为后缀. c。

或者使用obj=$(dir:%.c=%.o ),效果也是一样的。

foreach函数的调用语法。patsubst src dest text

该函数表示参数list; 的单词一个个地取出放在参数var上; 在指定的变量中,text; 包含的公式。 每次文本; 返回字符串。 循环中,文本; 返回的每个字符串用空格分隔,最后在整个循环结束时返回文本; 由返回的每个字符串组成的整个字符串用空格分隔,是foreach函数的返回值。

因此,希望var是变量名称,list可以是表达式,text通常使用var,该参数按顺序列出list; 的单词。 举个例子:

names :=a b c d

files:=$(foreachn,$(names ),$ (n ).o ) ) ) ) ) ) ) ) )。

在上面的示例中,$(name )中的单词被一个接一个地检索出来,并与变量“n”并存。 “$(n ).o”每次都根据“$(n )”计算值。 这些值用空格分隔,最后是foreach函数的返回值。 因此,$ ) ) $ (files )的值为“

请注意,foreach的var参数是临时局部变量。 foreach函数执行后,参数var; 的变量不起作用,其范围只在foreach函数中。

wildcard函数的调用语法为Makefile,它解压缩到与此模式匹配的所有文件的列表中,由已存在的空间分隔。 如果没有与此模式匹配的文件,函数将忽略模式字符并返回空值。 通常,可以使用$(wildcard*.c )获取工作目录中所有. c文件的列表。

示例:

假设在arch/arm/configs/路径下有三个文件: a_defconfig、b_defconfig和c_defconfig。 那么,

boards :=$ (wild card arch/arm/configs//* _ defconfig )这句话的意思是: $ (srctree )/arch/$(srcarch )/configs b _ defconfig arch/arm/configs/c _ defconfig这一方式被分配给boards。 因为这三个文件名由空格分隔,所以boards的值必须是字符串“arch/arm/configs/a _ defconfig arch/arm/configs/b _ defconfig arch/arm 如何删除路径? 下面的notdir很有用。

notdir函数的调用语法notdir函数的作用是从参数中删除路径。

示例:

自从我知道boards :=$ (wild card arch/arm/configs/* _ defconfig这个词的意思之后。 在此基础上,当我谈到这句话时:

boards:=$(Notdir$ ) boards ) )时,boards的值为a _ defconfig b _ defconfig c _ defconfig。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。