加快make编译速度的另一种方法

开始之前,先供上大佬的加快编译速度的方法:
转载

上述方法中,个人感觉,普通人能用的,估计就加上-j参数了。

不过在我的项目中,我发现了另一种大佬没有提的方法,那就是在makefile中,为每个c文件指定好INCLUDE_PATH变量,然后在编译每个c文件时,只让make去该文件的INCLUDE_PATH中取找头文件,经过实际测试,使用这种方法编译,可以将编译时间从30分钟下降到8分钟,效果杠杆的。

我的项目是一个汽车域控制器的项目,大约有400多个c文件需要编译。在优化makefile之前,指定头文件查找路径的方式就是使用一个INCLUDE_PATH变量,将所有头文件的路径全部添加到这个变量中,然后make在编译每一个c文件时,都会在这个庞大的路径集合中取找当前c文件中包含的每个头文件,变量INCLUDE_PATH中的路径大约有上百个,一个c文件中包含的头文件,少则几个,多则几十个,这样找头文件找起来自然是很费时间的。

想到这一点后,我们对makefile进行了优化,事先生成每个c文件包含的头文件的的路径,这个路径是gcc生成的,是绝对最简化的,没有任何多余的路径。然后在编译每个c文件时,将对应的头文件路径文件包含进来,只让make在这些几个路径中找头文件。

后续有时间补充一个示例makefile,来作为示例。

相关推荐
aaaffaewrerewrwer2 天前
在线2048小游戏推荐:经典数字合并玩法 + 浏览器即玩 + 流畅体验
个人开发
四六的六2 天前
WebView 性能优化实战:从首屏1.5秒到300毫秒
性能优化·个人开发·性能调优·前端优化·移动端h5·webview性能优化
链上杯子3 天前
幂等性是什么?为什么会重复扣款,以及接口防重怎么做
个人开发·学习方法
2501_915106323 天前
在Mac上搭建iOS开发环境的详细步骤与注意事项
ide·vscode·macos·ios·个人开发·swift·敏捷流程
aaaffaewrerewrwer4 天前
免费在线 WEBP 转 PNG 工具推荐:批量转换
个人开发
甄心爱学习4 天前
【项目实训】法律文书智能摘要系统4
python·github·个人开发
挖AI金矿5 天前
(六)文件与搜索 - 信息处理的正确姿势
人工智能·python·开源·个人开发·ai编程
aaaffaewrerewrwer6 天前
经典Windows扫雷在线版:无需下载 + 三种难度 + 自定义棋盘 + 排行榜功能
个人开发
aaaffaewrerewrwer6 天前
免费在线 AVIF 转 PNG 工具推荐:批量处理 + 浏览器本地运行 + 隐私优先
个人开发
cui17875687 天前
排队免单模式:从爆火到优化,探寻实体商业新出路
大数据·人工智能·设计模式·个人开发·设计规范