关于makefile下的通配符区别

关于makefile下的通配符区别

makefile文件中的 %.x 和 *.x 用法上有什么区别?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

此两者均为通配符,但更准确的讲,%为Makefile规则通配符,一般用于规则描述,如

%.o:%c

$(CC) $< -o $@

表示所有的目标文件及其依赖文件,或者

$(filter %.c ,SOURCES)     #filter为过滤规则。

此处SOURCES表示包含.c .cc .cpp等多类型源文件,该过滤器函数将c文件过滤出来,而%.c即为此过滤器规则。

通配符*则不具备上述功能。尤其是在Makefile,当变量定义或者函数调用时,该通配符的展开功能就失效了,即不能正常使用了。

可以理解为*.c是匹配所有的文件。%.c是多个文件中一个个的拿出来匹配。



  • 我想跑路 提问者 #1

    就是只有%匹配才能兼容makefile的语法规则是吗?

    2022-10-07 11:15:49
  • 简单理解就是%makefile中的规则!用*一般是删除等shell命令操作

    2022-10-08 22:24:22
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师