可以使用预编译的头文件与distcc一起使用吗?

时间:2015-07-06 15:48:59

标签: gcc precompiled-headers distcc

我有一个大型项目,我已经实现了预编译头文件。我也希望能够让它与distcc一起工作。根据谷歌代码文件here

中的4.12节
  

gcc 3.3版包含一些性能改进,使得distcc不那么直接有用。

     

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

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

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

更新:我现在有一种情况,我使用预编译头文件编译本地构建和distcc构建我强制包括预编译头文件,以便local和distcc构建两个编译完全相同的源。通过仔细选择预编译头文件,我可以获得比以前快40%左右的本地调试版本,并且distcc构建只会慢大约4%。我喜欢以某种方式将预编译的头文件和distcc结合起来以获得加速,比如10%或20%,使用distcc构建,只需要相当少的努力和干扰(加速构建不是我的主要责任,除此之外在公司环境中,我的能力有限。)

0 个答案:

没有答案