如果“make -j2”和“make”可以加速make process并解决所有make序列相关的问题?
有时当我想加快make过程时,我不得不添加-j来制作命令。但是在我使用这样的命令opts之后,由于make序列的无序,一些项目的某些cpp无法成功。所以我再次“制造”它没有任何命令选择解决这些错误。
简而言之,我使用make -j2来加速make过程,并使用make而不选择来解决make -j2中出现的问题。所有这些都是为了加快制作过程。
我的问题是,如果在“make -j2”和“make”之后存在任何问题?
答案 0 :(得分:1)
他们没有解决任何问题。他们只是尊重你的makefile。如果你的makefile被破坏并且具有不正确的依赖性,那么应用多个进程/线程使得不能可靠地工作。 (正如你所发现的那样)
您必须花时间确保您的依赖项已正确布局,以便它知道它可以和不能同时编译,依赖于什么,以及在多个编译单元中共享哪些文件
正确完成make -j 1,-j 2和-j 20之间的唯一区别是使用了更多内核并且应该更快地完成工作。
为了进一步参考,我甚至不把它作为论据
export MAKEFLAGS="-j 20"
基本上在我的环境中。