加速 GNU make 构建过程 - 并行性?

发布于 2024-09-10 21:46:23 字数 159 浏览 2 评论 0原文

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

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

I build a huge project frequently and this takes long time (more than one hour) to finish even after configuring pre-compiled headers. Are their any guidelines or tricks to allow make work in parallel (e.g. starting gcc in background, ...etc) to allow for faster builds?

Note: Sources and binaries are too large in size to be placed in a ram file system and I don't want to change the directory structure or build philosophy.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

女中豪杰 2024-09-17 21:46:23

你可以尝试

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

You can try

make -j<number of jobs to run in parallel>
临走之时 2024-09-17 21:46:23

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

export MAKEFLAGS=-jN

你的.bashrc

您可能还想查看 distcc

make -jN is a must now that most machines are multi-core. If you don't want to write -jN each time, you can put

export MAKEFLAGS=-jN

in your .bashrc.

You may also want to checkout distcc.

终弃我 2024-09-17 21:46:23

如果您的项目太大,一台机器无法处理,您可以使用分布式 make 替代品之一,例如 电云

If your project is becoming too big for one machine to handle, you can use one of the distributed make replacements, such as Electric Cloud.

听你说爱我 2024-09-17 21:46:23

如果您想并行运行构建,则

make -jN

可以完成这项工作,但请记住:

  1. N 应等于您的计算机支持的最大线程数,如果您输入大于该数字,make 会自动生成 N=您的机器支持的最大线程数
  2. make 不支持使用 进行并行构建-jNMSDOS 中,它只是进行串行构建。如果您指定 -jN,则会降级 N=1

make 源代码中了解更多信息:http://cmdlinelinux.blogspot.com/2014/04/parallel-build-using-gnu-make-j.html

If you want to run your build in parallel,

make -jN

does the job, but keep in mind:

  1. N should be equal to the maximum number of threads your machine supports, if you enter a number greater than that, make automatically makes N=maximum number of threads your machine supports
  2. make doesn't support parallel build using -jN in MSDOS, it just does a serial build. If you specify -jN, it will downgrade N=1.

Read more here, from the make source: http://cmdlinelinux.blogspot.com/2014/04/parallel-build-using-gnu-make-j.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文