预编译的标题?我们真的需要它们吗?

12 c++ precompiled-headers c-preprocessor

很久以前我曾经使用过预编译的头文件:a.加快编译速度和b.因为我支持多种开发工具,如CodeWarrior,MPW,VS,ProjectBuilder,gcc,intel编译器等等.

现在我有一台带有32GB RAM的Mac Pro.

现在我只使用CMake.

那么我们真的需要预先编译的头文件吗?

我有没有看到/知道明显的好处?

如何制作跨平台的预编译头?也许这会简化我的生活.

Jor*_*ans 17

没有像"足够快"的构建这样的东西.TDD(测试驱动开发)的支持者如果他们的构建需要花费的时间超过几秒钟就会感到不安,因为它会使他们的开发风格变得更慢.

通过以正确的方式处理预编译的头文件,我已经处理了数小时编译时间的项目,因此我们减半(或更好),因此优势可能非常大,特别是对于暂时忽略构建时间的项目.

但是,通过控制代码的物理依赖性,首选解决方案仍然是编译时间永远不会失控.

有关更多信息,请参阅预编译标题的保养和喂养


Mik*_*scu 5

我认为你的问题实际上取决于你正在编译的项目的大小。在一些非常大的项目中,预编译头确实会产生巨大的差异。

所以,我的答案是:这取决于..

但是,如果使用它们由于某种原因(即可移植性)让你的生活变得痛苦,并且你的项目不是非常大......我会说跳过它们。