8

我有一个大型项目,我已经为其实现了预编译头文件。我也希望能够让它与 distcc 一起工作。根据此处的 google 代码文件中的第 4.12 节

gcc 3.3 版包括一些性能改进,使 distcc 不太立即有用。

一个是预编译的头文件,在读取一组常见的头文件后,编译器的内部状态被转储到磁盘上。这对于包含大量固定头文件的程序很有用,其中解析头文件需要大部分编译时间。目前 distcc 可以通过将 .pch 状态文件放在共享文件系统上来支持这一点。将来可能会在 distcc 中添加更好的解决方案。

我不认为使用共享文件系统对我来说是一个好的解决方案。但后来也提到了一个潜在的补丁,可以让预编译的头文件和 distcc 以更好的方式协同工作:https ://lists.samba.org/archive/distcc/2008q2/003646.html 。这将涉及DISTCC_PCH在客户端上设置(或使用编译器选项-fpch-preprocess,请参见此处),并将pch选项添加到DISTCC_HOSTS服务器。我已经尝试过了,但它似乎不起作用,所以我怀疑补丁没有集成。

distcc 在共享文件系统之上是否支持预编译头文件?或者任何合理直接的方式让技术合作?


更新:我现在有一种情况,我将预编译头文件编译用于本地构建,而对于 distcc 构建,我强制包含预编译的头文件,以便本地和 distcc 构建都编译完全相同的源。通过仔细选择预编译头文件,我可以获得比以前快 40% 的本地调试构建,而 distcc 构建仅慢 4% 左右。我希望它以某种方式将预编译的头文件和 distcc 结合起来,以通过 distcc 构建获得加速,比如 10% 或 20%,只需相当少的努力和侵入性(加速构建不是我的主要责任,此外还有企业环境 我能做的事有限)。

4

0 回答 0