Gcc 加速GNU生成过程-并行性?

Gcc 加速GNU生成过程-并行性?,gcc,build,build-process,g++,makefile,Gcc,Build,Build Process,G++,Makefile,我经常构建一个巨大的项目,即使在配置了预编译的头文件之后,这也需要很长时间(超过一个小时)才能完成。他们是否有任何指导方针或技巧允许并行工作(例如,在后台启动gcc等)以允许更快的构建 注意:源文件和二进制文件太大,无法放在ram文件系统中,我不想更改目录结构或构建原理。如果您的项目太大,一台机器无法处理,您可以使用分布式的make替换,例如。您可以尝试 make -j<number of jobs to run in parallel> make-j make-jN是现在大多数机

我经常构建一个巨大的项目,即使在配置了预编译的头文件之后,这也需要很长时间(超过一个小时)才能完成。他们是否有任何指导方针或技巧允许并行工作(例如,在后台启动gcc等)以允许更快的构建


注意:源文件和二进制文件太大,无法放在ram文件系统中,我不想更改目录结构或构建原理。

如果您的项目太大,一台机器无法处理,您可以使用分布式的make替换,例如。

您可以尝试

make -j<number of jobs to run in parallel>
make-j

make-jN
是现在大多数机器都是多核的,所以必须使用。如果您不想每次都编写
-jN
,可以将

export MAKEFLAGS=-jN
在您的
.bashrc


您可能还想签出。

如果您想并行运行构建

make -jN
完成工作,但请记住:

  • N
    应等于机器支持的
    最大线程数
    ,如果输入的数字大于该值,
    make
    自动生成
    N=机器支持的最大线程数
  • make
    不支持在
    MSDOS
    中使用
    -jN
    进行并行构建,它只支持串行构建。如果指定-
    jN
    ,它将降级
    N=1

  • 请在此处阅读更多信息,来自
    make
    来源:

    MSDOS!=Windows,而你在第二点中关于并行制造的观点是错误的。@rubenvb:是的,我知道。谢谢你指出,源代码只提到了
    MSDOS
    ,而没有提到
    windows
    ,不知道我为什么写这个,更正了!