这是一个理论问题。不同机器之间的拆分编译
比方说,我有1000台Raspberry Pi Zero计算机,我希望他们都能编译一个巨大的C++项目。我可以向每台机器发送一个源文件,以便编译所需的每个依赖项(头文件),并使本机仅编译一个单元以生成obj
文件。在生成所有obj
文件后,我需要将它们链接起来。我不确定我可以分割一个连接步骤,对我来说,它看起来像一个单一的过程,但我们可以说我有一个专用的强大的单机来做到这一点。
所以这个问题 - 它会在理论上起作用吗?我的项目编译速度会快1000倍吗?链接过程是否很重?与预处理器/编译步骤相比,需要多少时间?
我们这样做(虽然与Raspberry Pi不同,但是具有全功能的计算机),并且每当需要重建巨大的代码库时,都可以加快编译速度。虽然不是1000x,但我们不使用那么多节点。此外,虽然我们使用一些家庭建立系统,但我不相信没有这种支持的标准构建系统存在。 – Petr
是的,它们存在。我们使用IncrediBuild,但许可证实际上是昂贵的,正如我之前提到的,我的问题比理论更具理论性。 – nikitablack