makefile list = ../a/a.o ../b.o aa= ../a ../ 使用patsubst 使用aa中的元素替换list 得到 a.o b.o 中文回答

动态 未结 0 86
小小草
小小草 LV1 2023年9月23日 23:40 发表
我们可以使用patsubst函数将list中的../a替换为a.o,将../b.o替换为b.o。makefile代码如下: list = ../a/a.o ../b.o aa= ../a ../ new_list = $(patsubst ../a/%.o,%,$(filter-out $(aa),$(list))) $(patsubst %.o,%,$(filter $(aa),$(list))) .PHONY: QQ QQ: @echo $(new_list) 在这个makefile中,我们定义了一个新的变量new_list来存储替换后的结果。使用patsubst函数,我们将../a/%.o替换为%,即去掉../a/和.o后缀,得到a和b。我们还使用filter-out函数过滤掉aa中的元素,再使用filter函数选择出aa中的元素,最终将它们拼接起来得到new_list。 当我们执行make QQ命令时,输出结果为: a b 这说明我们成功地将../a/a.o替换为a,并将../b.o保留为b。
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复