makefile学习笔记-书写规则(在规则中使用通配符)

20180413 makefile学习笔记-书写规则(在规则中使用通配符)

如果我们想定义一系列比较类似的文件,我们很自然的就像起使用通配符。make支持三种通配符:“*”,“?”,“[...]”。这是和UNIX的B-Shell相同的。






波浪号(“~”)字符在文件名中也有比较特殊的用途,如果是“~/test”,这就表示当前用户的$HOME目录下的test目录,而“~hchen/test”则表示用户hchen的宿主目录下的test目录(这些是Unix下的小知识,make也支持)。而在Windows或是MS-DOS下,用户没有宿主目录,那么波浪号所指的目录则根据环境变量“HOME”而定。




通配符代替了你的一系列文件,如“*.c”表示所有后缀为c的文件,一个需要我们注意的是,如果我们的文件中有通配符,如:“*”,那么可以用转义字符,“\”,如“\*”来表示真实的“*”字符,而不是任意长度的字符串。



例1:

clean:
rm -f *.o

这种是操作系统Shell所支持的通配符。


例2:

objects=*.o

这个例子表示通配符可以用在变量中,并不是说,[*.o]会展开,objects是值就是"*.o",Makefile中的变量其实就是C/C++中的宏,如果你想让通配符在变量中展开,也就是让objects的值是所有[.o]的文件名的集合,那么你可以这样:

objects:=$(wildcard *.o)

这种用法由关键字wildcard指出。关于Makefile关键字,我们会在后续讲解。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值