Makefile函数

  1. foreach:
    $(foreach var,list,text)
    
    例子:
    A = a b c
    B = $(foreach f, $(A), $(f).o)
    all:
    @echo B = $(B)
    
    执行结果:
    在这里插入图片描述
  2. filter: #在text中取出附和patten格式的值
    fileter-out:#在text中取出不符合patten格式的值
    $(filter pattern…,text)
    $(filter-out pattern…,text)
    
    例子:
    A = a b c
    B = $(foreach f, $(A), $(f).o)
    C = a b c d/
    D = $(filter %/, $(C))
    E = $(filter-out %/, $(C))
    
    all:
    	@echo B = $(B)
    	@echo D = $(D)
    	@echo E = $(E)
    
    执行结果:
    在这里插入图片描述
  3. wildcard: #pattern定义了文件名的格式,wildcard取出其中存在的文件
    $(wildcard pattern)
    
    A = a b c
    B = $(foreach f, $(A), $(f).o)
    C = a b c d/
    D = $(filter %/, $(C))
    E = $(filter-out %/, $(C))
    files = $(wildcard *.c)
    files2 = a.c b.c c.c d.c e.c
    files3 = $(wildcard $(files2))
    all:
    	@echo B = $(B)
    	@echo D = $(D)
    	@echo E = $(E)
    	@echo files = $(files)
    	@echo files3 = $(files3)
    
    执行结果:
    在这里插入图片描述
  4. patsubst # 从var里的每个符合pattern格式的文件替换为replacement格式的文件
    $(patsubst pattern,replacement,$(var))
    
    A = a b c
    B = $(foreach f, $(A), $(f).o)
    C = a b c d/
    D = $(filter %/, $(C))
    E = $(filter-out %/, $(C))
    files = $(wildcard *.c)
    files2 = a.c b.c c.c d.c e.c abc
    files3 = $(wildcard $(files2))
    dep_files = $(patsubst %.c,%.d,$(files2))
    all:
    	@echo B = $(B)
    	@echo D = $(D)
    	@echo E = $(E)
    	@echo files = $(files)
    	@echo files3 = $(files3)
    	@echo dep_files = $(dep_files)
    
    执行结果:
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值