用g ++编译使用多核

快速的问题:编译器标志是什么让g ++能够产生多个自己的实例,以便更快地编译大型项目(例如,一个多核CPU的4个源文件)?

非常感谢。

你可以用make来做到这一点 – 使用GNU使它成为-j标志(这也将有助于单处理器机器)。

例如,如果你想从make 4个并行作业:

 make -j 4 

你也可以在pipe道中运行gcc

 gcc -pipe 

这将编译阶段,这也将有助于保持核心繁忙。

如果你还有其他的机器,你可以检查一下distcc ,这样也可以编译出来。

没有这样的标志,有一个违背了Unix的哲学,使每个工具只执行一个function,并执行它。 产生编译器进程在概念上是构build系统的工作。 你可能要找的是GNU make的-j(jobs)标志

  make -j4 

或者你可以使用pmake或类似的并行make系统。

人们提到了makebjam也支持类似的概念。 使用bjam -jx指示bjambuild立x并发命令。

我们在Windows和Linux上使用相同的构build脚本,使用这个选项在两个平台上减less构build时间。 尼斯。

make会为你做这个。 调查手册页中的-j-l开关。 我不认为g++是可并行化的。

distcc还可以用于不仅在当前机器上分发编译,而且还在已安装distcc的场中的其他机器上分发编译。

我不确定g ++,但是如果你使用的是GNU Make,那么“make -j N”(其中N是make可以创build的线程数)将允许make同时运行多个g ++作业(这么久因为这些文件不依赖于彼此)。