假设有一个我正在研究的相当复杂的类。有一半的方法已经完成并经过测试,但我还是在另外一半。如果我将完成的代码放在一个cpp中而其余的放在另一个cpp中,那么当我只更改“正在进行中的工作”cpp中的代码时,Visual Studio(或任何其他IDE)的编译会更快吗?
谢谢!
答案 0 :(得分:2)
是的,我相信Visual Studio会逐步编译,所以只要你点击Build而不是Rebuild All,你就可以通过拆分来获得更快的编译时间。
但是,由于代码因素的原因,你应该真正分裂出来,即每个课程应该有一个目的等等......我相信你知道。
答案 1 :(得分:1)
这取决于。对于一个非常大的项目,链接时间通常比编译单个文件的时间贵得多。在我们的工作代码库(基于虚幻引擎的游戏)中,我们实际上发现制作包含许多其他文件的“bulk.cpp”文件(实际上更少的翻译单元)会显着减少周转时间。
即使小的更改的单个编译时间增加,整体编译时间(完全重建)和链接时间(即使是小的更改也会发生)都会急剧下降。
答案 2 :(得分:0)
只要头文件没有改变(假设两个.cpp都包含相同的头),那么只会编译更改的.cpp文件。
至少对于大多数IDE来说都是如此。我没有直接调用像gcc这样的编译器的经验,所以我不能对此发表评论。
答案 3 :(得分:0)
答案可能是肯定的,因为您可能正在执行增量构建(仅编译更改的.cpp)和预编译的头文件。如果您没有使用这些功能中的任何一个,那么您将获得较慢的构建。我很确定默认的Visual Studio C ++项目使用增量构建和预编译头文件。
答案 4 :(得分:0)
是的,它会更快。
但更重要的是:不要担心这一点,如果你的课程太大而且需要花费大量时间在现代处理器上,那就是上帝说你的课程需要被重构成小块的方式。