假设存在下图所示的项目目录结构。
如果存在如下包含头文件的代码,则大多的项目中需要通过“-I foo”和“-I bar”指明两个搜索头文件的目录。
foo.c
#include "bar.h"
bar.c
#include "foo.h"
然而,当项目规模很大存在很多的目录时,这种方式将显著地降低项目的编译速度。因为“-I”选项使用得越多,意味着编译每一个C文件时所需进行头文件搜索的目录也越多。
为了避免这一问题,我们可以将代码改为:
foo.c
#include "bar/bar.h"
bar.c
#include "foo/foo.h"
如此一来,整个项目只需一个“-I src”选项就行了。
促使我意识到这一问题,是因为前段时间看到Blink开源项目的一封邮件,其中谈到采用上面的第二种方法后,在Windows上编译Blink的速度提高了40%。
本文探讨了在大型项目中通过优化头文件搜索目录来提高编译速度的方法,具体介绍了如何从使用多个-I选项转换为路径依赖方式,从而在Windows上实现Blink项目编译速度提升40%的效果。

2082

被折叠的 条评论
为什么被折叠?



