[Makefile]-1.Makefile一些常用指令

Demo 1:
2.Makefile 内容

define .Leotest
        echo $(wildcard *.c)
        @echo $(strip $(Astr)) $(strip $(Bstr)) $(strip $(Cstr))a
        @echo $(filter aabc ccd, $(Cstr)) $(filter bb, $(Cstr)) $(filter $(Cstr), ccd aabc)
        @echo $(src)
        @echo $(src1)
        @echo $(dira)
        @echo $(fil)
endef

Astr:=   123
Bstr:= 4 5 6
Cstr:= aabc  bbc  ccd
src:=$(wildcard *.c ./subs/*.c)
src1:=$(wildcard *.c)
dira:=$(notdir $(src))
fil:=$(patsubst %.c, %.o, $(src))


all: 
        $(call .Leotest)

3.输出:make

echo 3.c 1.c 2.c
3.c 1.c 2.c
123 4 5 6 aabc bbc ccda
aabc ccd ccd aabc
3.c 1.c 2.c ./subs/5.c ./subs/7.c ./subs/6.c
3.c 1.c 2.c
3.c 1.c 2.c 5.c 7.c 6.c
3.o 1.o 2.o ./subs/5.o ./subs/7.o ./subs/6.o

4.总结

1.define xxx 类似于定义一个函数名字,使用$(call xxx)调用
2.$(wildcard *.c) 类似于find . -name *.c (wildcard 通配符,就是展开指定目录的指定文件) 
3.变量最好用()包起来,类似$(strip $(Astr)) ,其中$(Astr)是一个$(strip $(xxX))是一个
4.@是表示不输出显示当前行make命令

摘抄:
原文:http://t.zoukankan.com/black-mamba-p-9660237.html

#$(strip <string> )
#名称:去空格函数——strip。
#功能:去掉<string>字串中开头和结尾的空字符,并将中间的多个连续空字符(如果有的话)合并为一个空字符。
#返回:返回被去掉空格的字符串值。
#说明: 空字符包括 空格,tab等不可显示的字符

#把字串" abc"开头的空格去掉,结果是"abc"。
str1 :=    abc
str2 := abc      
str3 := a	b  c      

all:
	@echo bound$(strip $(str1))bound
	@echo bound$(strip $(str2))bound
	@echo bound$(strip $(str3))bound
$(filter PATTERN…,TEXT) 
函数名称:过滤函数—filter。 
函数功能:过滤掉字串“TEXT”中所有不符合模式“PATTERN”的单词,保留所
有符合此模式的单词。可以使用多个模式。模式中一般需要包含模式字
符“%”。存在多个模式时,模式表达式之间使用空格分割。 
返回值:空格分割的“TEXT”字串中所有符合模式“PATTERN”的字串。 
函数说明:“filter”函数可以用来去除一个变量中的某些字符串,我们下边的例子中
就是用到了此函数
————————————————
版权声明:本文为CSDN博主「骆驼日记」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhoudengqing/article/details/41777957
格式:$(patsubst <pattern>,<replacement>,<text> ) 
名称:模式字符串替换函数——patsubst。
功能:查找<text>中的单词(单词以“空格”、“Tab”或“回车”“换行”分隔)是否符合模式<pattern>,如果匹配的话,则以<replacement>替换。这里,<pattern>可以包括通配符“%”,表示任意长度的字串。如果<replacement>中也包含“%”,那么,<replacement>中的这个“%”将是<pattern>中的那个“%”所代表的字串。(可以用“\”来转义,以“\%”来表示真实含义的“%”字符)
返回:函数返回被替换过后的字符串。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值