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

标签 c++ makefile

<分区>

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

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

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

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

最佳答案

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

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

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

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

关于c++ - 如果 "make -j2"和 "make"可以加速制作过程并解决所有与制作序列相关的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17331697/

相关文章:

c++ - 为什么需要 std::forward,默认情况下编译器不能做正确的事情

makefile - Make 表示 "missing separator"来自 CuTest 的源 .c 文件

c++ - Std::map 比较函数

C++ 程序在为二维指针数组赋值后崩溃

c++ - 签署零 linux 与 windows

c++ - 使用 Makefile 构建共享库

linux - make file编译两个C程序文件

c++ - 为第一个元素对数组进行排序的算法,然后是前 2 个元素,然后是前 3 个元素,依此类推

c - C 中 Makefile 的问题

erlang - 如何使用 rebar 在每个文件的基础上使用不同的 c 编译器/链接器选项?