我有一个使用递归自动工具结构的大型项目。大部分构建时间都花在其中的单个目录上,因此我想让该目录并行构建。我找到了与 make-j
启用并行构建选项相关的文档,但问题是,我应该-j
在我Makefile.am
的哪个目录中指定我正在构建的目录?
我知道最好使用非递归结构进行并行构建,但现在这项工作太大了,我希望还有一种方法可以使这个目录并行构建。
作为维护者,指定构建的并行级别不是您的任务,因为它取决于您正在构建的机器。通常将 CPU 的数量传递给-j
是一个好主意,但并非总是如此。应该发生的是用户只是make
使用适当的-j
标志运行。如果您也恰好是那个用户并且您厌倦了-j
一直显式传递,那么
export MAKEFLAGS=-j2
从您的外壳配置文件(例如.bashrc
)中,并make
一直考虑这个选项。
假设一个 linux 发行版,并进一步假设您希望构建是自适应的,您可以尝试:
export MAKEFLAGS=-j`nproc`