c++ - 编译大型头文件 C++

标签 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。请指出我做错了什么。如何使用此设置加快编译速度。

最佳答案

感谢您提出预编译头的解决方案。预编译头是一种优化策略,没有解决问题的根本原因,即编码风格。引用这篇文章

Why does C++ compilation take so long?

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

关于c++ - 编译大型头文件 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33813778/

相关文章:

c++ - 如何编写在模板类中返回指向结构对象的指针中声明的函数的定义?

c++ - 在 2D 纹理之上绘制基元 ( GL_QUADS ) - 没有四边形渲染,纹理颜色改变

c - 未定义的函数引用被编译器接受

c++ - Visual Studio 2010 不重建/重新编译

c++ - Glm VECTORIZE2_VEC 重新定义 XCode 警告

c++ - 为什么值(value)观不同? C++ 指针

c - GCC 编译器优化选项

c - 用于调用函数的 x86 汇编宏(带参数)

C FILE* 错误

创建不需要 DLL 或库的 .exe