关于分布式编译的问题,请大家出出主意。
我们的代码编译一次需要好几个小时,效率太低。boss要求采用分布式编译的办法来降低编译时间。
请问各位有没有相关经验或者想法?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我们的代码编译一次需要好几个小时,效率太低。boss要求采用分布式编译的办法来降低编译时间。
请问各位有没有相关经验或者想法?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(9)
头文件?C++里面最恼火的就是这个!
那就试试 distcc 吧,应该可以满足你的要求。
说起这个,也是很让人恼火。
由于没有加强这方面的管理,导致现在的整个makefile系统把头文件依赖关系搞乱了。
比如,很多人在头文件中会采用长长的链式宏定义,
// file1.h
#define A 5
//file2.h
#define B A
// file3.h
#define C B
在这种情况下,如果只是对A做一个修改,不会引起另外的头文件的自动更新。
很不幸,从硬件上想办法,已经被否决了。
所以只能用PC机来想办法。
对于makefile的感受是,如果修改了一个共用的头文件,将是一个很费时的编译过程
makefile在用么?每次都clean么?
升级机器。。。
回复 2# buxoman
distcc 应该可以。不过根据我的经验,最好还是买台好一点的服务器来做build server。双cpu,每个cpu 4 core/8 thread,一般够用了。在同样性能的情况下,这样总成本会比较低 (机器成本,人力成本,电费,空间,setup和维护复杂性)。
用的是gcc 2.96的交叉编译器,目标CPU是PowerPC。我们都是在Windows平台上编译的。所以这个分布式编译,我也希望能在Windows平台上搞。我们的系统是用C写的。
我有个初步的想法,主控PC机上先把各个C文件进行预处理后,生成可编译的不依赖头文件的单个文件,然后把单个文件发送到分处理机上去编译成.o目标文件,最后把目标文件返回给主控机。
想请各位给点儿意见,谢谢!