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. android核心库编译
- 4. 使用英特尔Fortran for Linux编译多核心
- 5. 使用g ++编译FLTK
- 6. 使用nvcc和g ++编译
- 7. strncpy_s使用G ++编译器
- 8. 用g ++编译器编译Multi2Sim
- 9. AMD多核心编程
- 10. gdb:使用-g编译的二进制文件与使用-g编译的二进制编译的代码
- 11. 使用G ++编译器编译GTK +应用程序
- 12. 用g ++编译GLFW代码
- 13. 用g ++编译C++ 11
- 14. 在.NET核心编译Sass文件
- 15. 编译没有ros的roscpp(使用g ++)
- 16. 编译器错误使用g ++
- 17. 使用g ++动态共享库编译
- 18. 如何使用g ++编译openmp
- 19. 使用g ++编译meep的C++代码
- 20. 编译器指令如何对使用.NET的核心
- 21. 使用g ++将多个源文件编译为一个.o
- 22. g ++编译失败,Cmake不编译
- 23. 使用Windows编译器之间的编译库编译器,cygwin和linux g ++
- 24. g ++:分段错误(核心转储)
- 25. 分割错误(核心转储),linux,g ++
- 26. Cocoa-Touch,核心数据:编译器找不到NSManagedObjectContext(+其他核心数据类)
- 27. 用g ++编译ifstream错误,但用Visual Studio编译
- 28. MonoDevelop的G ++编译器
- 29. 编译错误(g ++和make)
- 30. g ++编译错误:缺少';'
它真的有帮助吗?我所有的编译作业都是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