跟进此事 问题:

当我做 include <iostream>.
碰巧它包含许多来自 /usr/include 。A grep "\usr\include" 超过 g++ -E prog.cpp 算起来大约有 1260 个条目;)。

他们是一种控制各种文件的方法吗?
平台:Linux
G++版本:4.2.4

有帮助吗?

解决方案

没有,<iostream>包括它们,因为它依赖于他们直接,或它的依赖关系依赖于它们。

是不是没有什么可以做的。

您可以(根据您的编译器)使用预编译头限制这对编译时间的影响

其他提示

我的建议是不要担心编译器包含多少个文件。更加关注 正确性、鲁棒性、 日程. 。如果构建时间是一个问题,那么买一台更快的机器,过夜构建,散步,或者将代码分成更小的代码 翻译单位. 。翻译单元应该足够小,以包含不经常更改的代码。 改变是邪恶的。

构建系统的基础是仅编译少数已更改的文件。如果您的开发过程正常运行,随着项目的增长,构建时间将越来越多地停留在链接阶段。

如果编译时间还是很长,看看你的编译器是否支持 预编译头文件. 。一般来说,这是编译器以更有效的形式存储所有声明和定义的方法。

#include <iostream>当你需要使用流。这应该定义一些事情你需要。多少活动需要做,这是实现问题的质量。你可以从/usr/include删除文件,但这样会打破东西。

我真的怀疑它包括1260个文件。几乎可以肯定的大多数人是不加载任何东西,但不会从-E输出修剪重复的条目。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top