跟进这个问题:
当我这样做的时候include <iostream>
。
碰巧它包含了许多从/usr/include
.Agrep "\usr\include"
到g++ -E prog.cpp
大约 1260 个条目的文件;)。
他们是一种控制各种文件的方法吗?
平台:Linux
G++ 版本:4.2.4
我的建议是不要担心编译器包含多少文件。更多地关注正确性、稳健性和进度。如果需要考虑构建时间,请购买更快的机器、通宵构建、散步或将代码分成更小的翻译单元。翻译单元应该足够小以包含不经常更改的代码。变化是邪恶的。
构建系统的基础是仅编译已更改的少数文件。如果您的开发过程正常运行,随着项目的增长,构建时间将越来越多地停留在链接阶段。
如果编译时间仍然很长,请查看您的编译器是否支持预编译头文件。通常,这是编译器以更有效的形式存储所有声明和定义的方法。
当你#include <iostream>
需要使用流时。那应该定义一些你需要的东西。它需要多少活动才能做到这一点是实施质量问题。您可以从中删除文件/usr/include
,但这会破坏事情。
我真的怀疑它是否包含 1260 个文件。几乎可以肯定,其中大多数都是重复的条目,它们不加载任何内容,但不会从-E
输出中删除。