为什么“include <iostream>”最终会包含这么多*许多*文件?
题
跟进此事 问题:
当我做 include <iostream>
.
碰巧它包含许多来自 /usr/include
。A grep "\usr\include"
超过 g++ -E prog.cpp
算起来大约有 1260 个条目;)。
他们是一种控制各种文件的方法吗?
平台:Linux
G++版本:4.2.4
解决方案
其他提示
我的建议是不要担心编译器包含多少个文件。更加关注 正确性、鲁棒性、 和 日程. 。如果构建时间是一个问题,那么买一台更快的机器,过夜构建,散步,或者将代码分成更小的代码 翻译单位. 。翻译单元应该足够小,以包含不经常更改的代码。 改变是邪恶的。
构建系统的基础是仅编译少数已更改的文件。如果您的开发过程正常运行,随着项目的增长,构建时间将越来越多地停留在链接阶段。
如果编译时间还是很长,看看你的编译器是否支持 预编译头文件. 。一般来说,这是编译器以更有效的形式存储所有声明和定义的方法。
您#include <iostream>
当你需要使用流。这应该定义一些事情你需要。多少活动需要做,这是实现问题的质量。你可以从/usr/include
删除文件,但这样会打破东西。
我真的怀疑它包括1260个文件。几乎可以肯定的大多数人是不加载任何东西,但不会从-E
输出修剪重复的条目。
不隶属于 StackOverflow