GUN_makefile学习

刚参加工作时,感觉这个东西很神秘,原来只是看了一些介绍性的东西,感觉差不多了解了,但到最近转到新项目时,需要编写这个东东时,才发现自己知道的甚少!

      这里我简短的记录下我的一下学习心得。(假定工程有大于100个源文件,近10个库文件,头文件散乱在各个文件夹内)

      Makefile的工作流程:GNU_make首先读取Makefile文件,根据Makefile中指定的第一个为终极目标,再根据依赖关系,比较源文件与目标文件的时间戳来确定哪些源文件是修改过的,执行相应的命令。

     我们老版本的Makefile采用的是make -c方式进入子目录编译所有源文件,但我发现,进入和退出目录很费时间(我没找到原因),所以我采用的方式是在顶层makefile中把所有需要的源文件统统搜索出来,不要进入子目录。

     使用 -MM -MD选项,发每个源文件所包含的头文件以及目录都保存在相应的.d文件内,在局部编译后可以加快编译速度。

     在一个加快编译的方法是,采用预编译头文件的方法,将常用到得一些头文件编译成二进制的格式,*.h.gch。原则上源代码不用做任何改变,只要包含相应的*.h make 会先查找*.h.gch文件,并符合相应的格式可用(适应相同的编译选项)。则用方法我试了后发现对文件的包含还是有一定要求的,但我查文档都说没要求,我还没研究透,有朋友有研究的希望交流学习下。

      采用上述方法,比使用make -c 快很多。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值