在其他实现文件中包含实现文件有什么用?

时间:2012-07-25 17:23:07

标签: c++ c visual-c++

  

可能重复:
  #include all .cpp files into a single compilation unit?

我正在开发MSVS中的一个项目,其中大多数实现文件(.cpp)都从构建中排除,并包含在一个已编译的源文件中。

//a.cpp
#include "b.cpp"
#include "c.cpp"
//and so on...

由于b.cppc.cpp不是自己编译的,所以没关系。

我知道这不是标准做法,我知道陷阱,我可能不会这样做(除非有人提出了一个很好的理由)。

所以问题是 - 这项技术的用途是什么?它是否使编译更快(也考虑分布式编译环境)?

2 个答案:

答案 0 :(得分:3)

这称为统一构建

它应该加速源代码的编译。

请在此处查看相关问题,其中提供了更多详细信息:The benefits / disadvantages of unity builds?

答案 1 :(得分:3)

另一点可以是某些实现文件可以自动生成。与处理对现有代码的注入更改相比,自动生成整个文件要容易得多。就像C#中的部分类一样。