139
A
回答
199
你可以用make来做到这一点 - 用gnu使它成为-j标志(这也将有助于单处理器机器)。
例如,如果你想从化妆4个并行作业:
make -j 4
您可以在管道与
gcc -pipe
这将管道中的编译阶段也运行gcc,这也将有助于保持核心繁忙。
如果您还有其他机器可用,您可能会检查出distcc,这也将编译出来。
7
make
会为你做这个。调查手册页中的-j
和-l
开关。我不认为g++
是可并行化的。
2
我对g ++没有把握,但是如果您使用的是GNU Make,那么“make -j N”(其中N是make可以创建的线程数)将允许make在相同的时间运行多个g ++作业时间(只要文件不相互依赖)。
36
没有这样的标志,并且有违反Unix哲学的每一个工具只执行一个函数并且执行得很好的哲学。产生编译器进程在概念上是构建系统的工作。什么你可能寻找的是-j(工种)标志GNU做,一拉
make -j4
或者你可以使用pmake或类似的并行做系统。
11
人们已经提到make
,但bjam
也支持类似的概念。使用bjam -jx
指示bjam建立最多x
并发命令。
我们在Windows和Linux上使用相同的构建脚本,并使用此选项减少了两个平台上的构建时间。尼斯。
5
distcc还可用于不仅在当前机器上分配编译,而且还在已安装distcc的场中的其他机器上分配编译。
相关问题
- 1. 使用C++核心库编译错误
- 2. 使用g ++编译器编译boost.asio
- 3. 编译为GHC核心
- 4. android核心库编译
- 5. 在c编译ImageMagick核心
- 6. .NET核心动态编译
- 7. 使用英特尔Fortran for Linux编译多核心
- 8. 使用g ++编译FLTK
- 9. 使用nvcc和g ++编译
- 10. strncpy_s使用G ++编译器
- 11. 使用g ++编译GSL odeiv2
- 12. 多核心编码
- 13. g ++编译多个文件
- 14. G ++编译Cygwin
- 15. Linux g ++编译
- 16. 用g ++编译器编译Multi2Sim
- 17. 多核心theora编码
- 18. AMD多核心编程
- 19. gdb:使用-g编译的二进制文件与使用-g编译的二进制编译的代码
- 20. mclapply不使用多核心
- 21. 使用G ++编译器编译GTK +应用程序
- 22. 用g ++编译GLFW代码
- 23. 用g ++编译C++ 11
- 24. 与cabal编译时查看核心
- 25. 在.NET核心编译Sass文件
- 26. 编译器特定的核心转储
- 27. 编译器错误使用g ++
- 28. 使用C++编译g ++的库11
- 29. 使用g ++编译器构建PJSIP
- 30. 无法编译使用cmake -G Xcode中
它真的有帮助吗?我所有的编译作业都是I/O绑定的,而不是CPU绑定的。 – 2009-01-06 13:28:48
即使它们是I/O限制,当CPU重位发生时(只有一个g ++实例会有暂停),可能会使I/O负载更高,如果调度程序有更多选择,可能会获得I/O效率关于下一步从磁盘读取什么内容。我的经验是,明智地使用`make -j`几乎总会导致一些改进。 – Flexo 2011-08-22 09:35:34
@BrianKnoblauch但是在我的机器上(真实的还是在VirtualBox中),它是CPU绑定的,我发现编译时CPU通过'top'命令忙碌。 – 2013-07-19 09:07:27