Linux中是否有可用于在多核或分布式系统上并行编译包含大量文件的源代码的软件。像gcc或xserver这样的库需要很长时间才能在unicore / dual机器上进行编译,而且大多数情况下,当你需要大量的重新编译时它会令人沮丧。是否有任何并行编译此类源代码的技术?
答案 0 :(得分:29)
在分布式内存系统上,您可以使用distcc将编译作业分配到其他计算机。这需要一些设置,但如果您碰巧有一些额外的机器,它可以真正加快您的构建。
在共享内存多核系统上,您可以使用make -j
,它将尝试根据您的makefile中的依赖项生成构建作业。你可以这样运行:
$ make -j
对生成的作业数量没有限制,或者您可以使用整数参数运行:
$ make -j8
将限制并发构建作业的数量。这里,限制是8个并发作业。通常,您希望它与系统中的核心数接近。
答案 1 :(得分:4)
ccache也可以用来加速编译过程
答案 2 :(得分:3)
GNU make(Linux系统上安装的标准make)支持并行命令执行 - 看看http://www.gnu.org/software/make/manual/make.html#Parallel