0

如果“make -j2”和“make”可以加速制作过程并解决所有与制作序列相关的问题?

有时当我想加快制作过程时,我不得不添加 -j 来制作命令。但是在我使用这样的命令 opts 之后,由于 make sequence 的无序,某些项目的某些 cpp 无法成功制作。所以我在没有任何命令的情况下再次“制作”它来解决这些错误。

简而言之,我使用 make -j2 来加速 make 过程,并使用 make without opts 来解决 make -j2 中出现的问题。所有这些都是为了加快制作过程。

我的问题是,“make -j2”和“make”之后是否存在任何问题?

4

1 回答 1

1

他们从来没有解决任何问题。他们只是尊重你的makefile。如果您的 makefile 损坏并且具有不正确的依赖关系,那么应用多个进程/线程进行 make 将无法可靠地工作。(正如你所发现的)

您必须花时间确保您的依赖项布局正确,以便它知道它可以同时编译和不能编译的内容,什么取决于什么,以及哪些文件在多个编译单元中共享。

正确完成 make -j 1、-j 2 和 -j 20 之间的唯一区别是使用了更多内核并且应该更快地完成工作。

为了进一步参考,我什至不将它作为参数传递。
export MAKEFLAGS="-j 20" 本质上是在我的环境中。

于 2013-09-10T20:46:33.233 回答