【问题标题】:Speedup GNU make build process - Parallelism?加速 GNU make 构建过程 - 并行性?
【发布时间】:2010-07-21 07:01:48
【问题描述】:

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

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

【问题讨论】:

    标签: gcc build build-process g++ makefile


    【解决方案1】:

    你可以试试

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

    【讨论】:

      【解决方案2】:

      make -jN 是必须的,因为大多数机器都是多核的。如果不想每次都写-jN,可以放

      export MAKEFLAGS=-jN
      

      在你的.bashrc

      您可能还想结帐distcc

      【讨论】:

        【解决方案3】:

        如果您的项目变得太大,一台机器无法处理,您可以使用其中一种分布式 make 替换,例如 Electric Cloud

        【讨论】:

          【解决方案4】:

          如果您想并行运行构建,

          make -jN
          

          做这项工作,但请记住:

          1. N 应该等于maximum number of threads your machine supports,如果你输入一个大于那个的数字,make 会自动变成N=maximum number of threads your machine supports
          2. make 不支持在MSDOS 中使用-jN 进行并行构建,它只是进行串行构建。如果您指定 -jN,它将降级 N=1

          在此处阅读更多信息,来自make 来源:http://cmdlinelinux.blogspot.com/2014/04/parallel-build-using-gnu-make-j.html

          【讨论】:

          • MSDOS != Windows,并且您在第 2 点中对并行 make 的看法是错误的。
          • @rubenvb:是的,我知道。感谢指出,来源只提到MSDOS而不是windows,不知道我为什么写这个,更正!
          猜你喜欢
          • 2022-08-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多