Makefile中通配符*与%的区别是什么?

Makefile中通配符*与%,*表示任意字符,%表示匹配零或若干字符,这不是一样的意思吗?弄不明白他们的区别在哪里,是否可以通用?... Makefile中通配符*与%,*表示任意字符,%表示匹配零或若干字符,这不是一样的意思吗?弄不明白他们的区别在哪里,是否可以通用? 展开
 我来答
806400464
推荐于2018-10-12 · TA获得超过144个赞
知道答主
回答量:9
采纳率:0%
帮助的人:10.7万
展开全部
此两者均为通配符,但更准确的讲,%为Makefile规则通配符,一般用于规则描述,如
%.o:%c
$(CC) $< -o $@
表示所有的目标文件及其依赖文件,或者
$(filter %.c ,SOURCES)
此处SOURCES表示包含.c .cc .cpp等多类型源文件,该过滤器函数将c文件过滤出来,而%.c即为此过滤器规则。
通配符*则不具备上述功能。尤其是在Makefile,当变量定义或者函数调用时,该通配符的展开功能就失效了,即不能正常使用了,此时需要借助wildcard函数。二者应用范围不同。
linuxer_me
2011-07-16
知道答主
回答量:15
采纳率:0%
帮助的人:13.7万
展开全部
这两个通配符的使用地方不一样 * 是直接使用在 makefile 的命令里面的,而 % 是使用在 vpath 后面的如 vpath %.h ../headers
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式