用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系统。
人们提到了make
但bjam
也支持类似的概念。 使用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 ++作业(这么久因为这些文件不依赖于彼此)。