您的位置:首页 > 其它

makefile之通配符扩展

2016-01-10 13:36 393 查看
makefile中使用通配符的注意点

关于makefile中的通配符话题其实很简单,在使用时心中知道以下几点就OK。

(1)makefile中的通配符与通常的shell通配符是一样的。

通配符匹配
?任何的单一字符
*任何的字符字符串
[set]任何在set里的字符
[!set]任何不在set里的字符
(2)通配符扩展发生的时机。通配符扩展发生在如下时刻:

① 在规则的目标、依赖中的通配符,make在读取Makefile时会自动为其进行匹配处理(即展开)

② 在命令中的通配符不需要make来操心,它们最总由shell来展开。

③ 除上面两点之外的地方(如变量定义),不能直接使用通配符,只能通过函数wildcard来达到目的

以下,通过一个简单的例子来感受下:

目录结构如下:



Makefile内容如下:



运行结果如下:
# make 
cc.c

bb.c

aa.c

cc.o bb.o aa.o

cc.c bb.c aa.c

%.c

aa.c bb.c cc.c

aa.c bb.c cc.c

可以看到尽管在变量定义中使用了通配符,但是在规则中依然正确扩展了。不过其中的src2中的%,shell是不认识的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: