加快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,来作为示例。

相关推荐
羊小猪~~7 小时前
【QT】-- 模型与视图简介
开发语言·数据库·c++·后端·qt·前端框架·个人开发
monsion11 小时前
Claude Code 的三种多 Agent 模式:Coordinator、Swarm 和 Fork
人工智能·vscode·个人开发
土土哥V_araolin1 天前
国械甄选新零售系统开发方案
小程序·个人开发·零售
春日见2 天前
GIT操作大全(个人开发与公司开发)
开发语言·驱动开发·git·matlab·docker·计算机外设·个人开发
monsion2 天前
Code Agent 不是编程工具:它是今天最接近通用 Agent 的现成形态
人工智能·vscode·个人开发
土土哥V_araolin4 天前
十二星商城小公排系统开发
小程序·个人开发·零售
2501_916007475 天前
iOS 开发工具有哪些 按开发流程整理的工具清单
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
剑飞的编程思维6 天前
技术评审方法与流程全解析-如何做好技术评审
git·架构·个人开发·学习方法·技术美术·代码复审
土土哥V_araolin7 天前
双迹美业奖金制度模式系统(现成源码)
小程序·个人开发·零售
游戏开发爱好者87 天前
入门 iOS 开发 新手工具开发首个应用
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程