使用通配符排除文件:可以使用通配符来匹配需要排除的文件,例如: 代码语言:txt 复制 SRC := $(wildcard *.c) OBJ := $(patsubst %.c, %.o, $(filter-out exclude.c, $(SRC))) 上述代码中,filter-out函数用于排除名为exclude.c的文件,使其不参与编译过程。 使用变量排除文件:可以定义一个变量,将需要排...
定义变量OBJ,用于存储所有的.o目标文件; 定义默认目标ALL,依赖于hello.out; 定义目标hello.out,依赖于$(OBJ),即所有的.o目标文件; 定义模式规则%.o: %.c,表示将.c源文件编译成对应的.o目标文件。 wildcard *.c是 Makefile 中的一个通配符,用于匹配当前目录下所有扩展名为.c的文件。它的作用是将匹配到的...
$(filter %.elc,$(files)): %.elc: %.el emacs -f batch-byte-compile $< In this example the result of ‘$(filter %.o,$(files))’ is bar.o lose.o, and the first static pattern rule causes each of these object files to be updated by compiling the corresponding C source file.The...
从结果来看,经过 filter 函数的调⽤以后,source变量中只存在.c ⽂件和.s ⽂件了,⽽.h ⽂件则则被过滤掉了。 (3)filter-out函数 filter-out 函数⽤于从⼀个字符串中根据模式滤除⼀部分字符串,其形式是:$(filter-out pattern..., text) .PHONY: all objects = main1.o foo.o main2.o ...
运行make,可以看到,调用filter函数后,sources变量中只会有.c和.o的文件, .h文件不符合要求被过滤了 fun.c main.c other.o 7.filter-out函数 filter-out函数被用于从名字列表 _text中根据模式 _pattern滤除一部分名字,并将滤除后的列表返回。 格式为:$(filter-out _pattern, _text) ...
一、filter函数的基本语法 filter函数的基本语法如下: $(filter pattern…,text) 其中,pattern表示要匹配的模式,可以使用通配符。text表示要过滤的字符串列表,多个字符串之间用空格分隔。 例如: $(filter %.c, foo.c bar.h main.c) 这个例子中,%.c是模式,表示以.c结尾的字符串;foo.c bar.h main.c是要过...
$(filter pattern. ..,text) #在text中取出符合patten格式的值 $(filter-out pattern.. . ,text) #在text中取出不符合patten格式的值 C = a b c d/D = $(filter %/, $(C))E = $(filter-out %/, $(C))all:@echo D = $(D)@echo E = $(E) ...
$(filter-out PATTERN...,TEXT) 函数名称:反过滤函数—filter-out。 函数功能:和“filter”函数实现的功能相反。过滤掉字串“TEXT”中所有符合模式 “PATTERN”的单词,保留所有不符合此模式的单词。可以有多个模式。 存在多个模式时,模式表达式之间使用空格分割。。
filter-out函数被用于从名字列表_text中根据模式_pattern滤除一部分名字,并将滤除后的列表返回。其形式如下: $(filter-out _pattern, _text) 如下示例说明了它的用法: .PHONY : allobjects = main1.o foo.o main2.o bar.oresult = $(filter-out main%.o, $(objects))all:@echo $(result) ...
$(filter-out <pattern…>,<text> ) 名称:反过滤函数——filter-out。 功能:以<pattern>模式过滤<text>字符串中的单词,去除符合模式<pattern>的单词。可以有多个模式。 返回:返回不符合模式<pattern>的字串。 示例: objects=main1.o foo.o main2.o bar.o ...