快速编写“专家级”makefile(4.打造更专业的编译环境——改善编译效率)

    对于大型项目,提高项目的编译速度有着非常重要的意义。
    从 Makefile 中看,一个可以改善编译效率的地方与其中的隐式规则有关
    隐式规则即:make 自带的编译规则,如生成 .o 文件的规则
    %.o : %.c
            $(CC)  -c  $(CPPFLAGS)  $(CFLAGS)  $^
    而我们在前面定义的生成 .o 文件的规则即 显式规则。
    这种隐式规则在大型项目中存在一个副作用,如生成的 .o 文件无法指定路径。
    所以,如果一个项目没有采用隐式规则,那么,最好告诉 make, “请不要为我的项目查找隐式规则,否则太浪费时间了”
    huge / build / Makefile
  
  
  1. .PHONY : all clean
  2. ROOT = $(realpath ..)
  3. DIRS = $(ROOT)/code/foo/src\
  4. $(ROOT)/code/bar/src\
  5. $(ROOT)/code/huge/src
  6. RM = rm
  7. RMFLAG = -rf
  8. RMS = $(ROOT)/build/exes $(ROOT)/build/libs
  9. all clean:
  10. @set -e;\
  11. for dir in $(DIRS);\
  12. do \
  13. cd $$dir && $(MAKE) -r ROOT=$(ROOT) %@;\
  14. done
  15. @set -e;\
  16. if["$(MAKECMDGOALS)" = "clean"]; then $(RM) $(RMFLAG) $(RMS); fi
  17. @echo ""
  18. @echo ":-) Completed"
  19. @echo ""
            参考文献:《专业嵌入式软件开发》李云·著                                                             2016年7月6日,星期三
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值