C语言的本质(37)——makefile之隐含规则和模式规则

Makefile有很多灵活的写法,可以写得更简洁,同时减少出错的可能。本节我们来看看这样一个例子还有哪些改进的余地。

 一个目标依赖的所有条件不一定非得写在一条规则中,也可以拆开写,例如:

main.o: main.h stack.h maze.h
 
main.o: main.c
         gcc-c main.c

就相当于:

main.o: main.c main.h stack.h maze.h
         gcc-c main.c


如果一个目标拆开写多条规则,其中只有一条规则允许有命令列表,其它规则应该没有命令列表,否则make会报警告并且采用最后一条规则的命令列表。

 

这样我们的例子可以改写成:

main: main.o stack.o maze.o
         gccmain.o stack.o maze.o -o main
 
main.o: main.h stack.h maze.h
stack.o: stack.h main.h
maze.o: maze.h main.h
 
main.o: main.c
         gcc-c main.c
 
stack.o: stack.c
         gcc-c stack.c
 
maze.o: maze.c
         gcc-c maze.c
 
clean:
         -rmmain *.o
 
.PHONY: clean

这不是比原来更繁琐了吗?现在可以把提出来的

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尹成

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值