编译大型头文件C ++

时间:2015-11-19 20:28:50

标签: c++ gcc compilation makefile g++

我的代码组织为

//LARGEHEADER.H

class LARGE {

 ...
}

//SMALLER.H
#include "LARGEHEADER.H"
class SMALL: protected LARGE {
...
}

//and in each of A.C, B.C, C.C ...
#include "SMALLER.H"
void f() {
 ...
}

现在LARGEHEADER.H大约10 MB。在尝试编译此设置时,它似乎占用了大量的时间和内存,我的最终可执行文件接近90 MB。请指出我做错了什么。如何使用此设置加快编译速度。

1 个答案:

答案 0 :(得分:1)

感谢您提供预编译标头的解决方案。预编译头是一种优化策略,它不能解决问题的根本原因,即编码风格。参考这篇文章

Why does C++ compilation take so long?

在多个源/头文件中包含一个大的头文件将导致编译爆炸(为每个包含器生成调试/符号信息)。我重新组织代码以删除此类依赖项。