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

相关推荐
不爱吃鱼的猫-1 天前
PySide6控件:QFont设置、QColor调色板、QPixmap图像处理与QCursor光标自定义
python·pyqt·个人开发·pyside6
不爱吃鱼的猫-2 天前
Pyside6 信号与槽
python·个人开发·pyside6
xiao--xin5 天前
使用ProcessBuilder执行FFmpeg命令,进程一直处于阻塞状态,一直没有返回执行结果
java·笔记·ffmpeg·个人开发·缓冲区·进程阻塞
Blossom.1188 天前
基于Python的机器学习入门指南
开发语言·人工智能·经验分享·python·其他·机器学习·个人开发
正宗咸豆花10 天前
【PromptCoder + Trae】三分钟复刻 Spotify
人工智能·ai·prompt·aigc·个人开发
浪裡遊12 天前
我的uniapp自定义模板
开发语言·前端·uni-app·个人开发
自由鬼14 天前
Tomcat、Open Liberty 和 WebSphere Application Server (WAS) 的配置、调试和跟踪
java·tomcat·个人开发·was·websphere·open liberty
凭君语未可15 天前
详解软件设计原则
团队开发·需求分析·个人开发
君临天下.鑫16 天前
基于 Verilog 的数字电路设计与仿真:乘数器与多路复用器实践
fpga开发·课程设计·个人开发
yuandll16 天前
WIN11开发环境变量记录
java·windows·个人开发