我有一个使用递归autotools结构的大型项目。大部分构建时间都花在了这个目录中的一个目录上,所以我想让这个目录并行构建。我找到了与make -j
选项相关的文档来启用并行构建,但问题是,我应该在-j
中为我正在构建的目录指定Makefile.am
?
我理解使用非递归结构进行并行构建更好,但是现在这个工作太大了,我希望还有一种方法可以并行构建这个目录。
答案 0 :(得分:2)
指定构建的并行度级别不是维护者的任务,因为它取决于您构建的机器。通常将CPU数量传递给-j
是一个好主意,但并非总是如此。应该发生的是用户只使用适当的make
标志运行-j
。如果你碰巧也是那个用户而且你已经厌倦了一直明确地传递-j
,那么
export MAKEFLAGS=-j2
来自您的shell个人资料的(例如.bashrc
)并让make
始终考虑此选项。
答案 1 :(得分:0)
假设有一个linux发行版,并且进一步假设您希望构建是自适应的,那么您可以尝试:
export MAKEFLAGS=-j`nproc`