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

相关推荐
2501_9181269115 小时前
用html5写王者荣耀之王者坟墓的游戏2deepseek版
个人开发
幂简集成16 小时前
Realtime API 语音代理端到端接入全流程教程(含 Demo,延迟 280ms)
人工智能·个人开发
HAH-HAH1 天前
【Python 入门】(2)Python 语言基础(变量)
开发语言·python·学习·青少年编程·个人开发·变量·python 语法
武子康12 天前
66AI-调查研究-68-具身智能 应用全景:家庭、工业、医疗、交通到虚拟交互的未来趋势
人工智能·程序人生·ai·职场和发展·交互·个人开发·具身智能
ftpeak13 天前
Rust SQLx 开发指南:利用 Tokio 进行性能优化
开发语言·oracle·性能优化·rust·个人开发
武子康14 天前
AI-调查研究-65-机器人 机械臂控制技术的前世今生:从PLC到MPC
人工智能·ai·职场和发展·机器人·职场发展·个人开发·gp
武子康19 天前
AI-调查研究-59-机器人 行业职业地图:发展路径、技能要求与薪资全解读
人工智能·gpt·程序人生·ai·职场和发展·机器人·个人开发
YF云飞21 天前
车机两分屏运行Unity制作的效果
unity·游戏引擎·个人开发·车机
Korloa25 天前
表达式(CSP-J 2021-Expr)题目详解
c语言·开发语言·数据结构·c++·算法·蓝桥杯·个人开发
YF云飞1 个月前
Unity音频管理:打造沉浸式游戏音效
游戏·unity·游戏引擎·游戏程序·个人开发