gpt4 book ai didi

makefile - 为多核机器自动设置作业(-j)标志?

转载 作者:行者123 更新时间:2023-12-03 05:43:41 24 4
gpt4 key购买 nike

我在一台有大量核心的机器上有一个 Makefile,但在编译我的项目时我似乎总是忘记编写 -jX 并且它花费的时间比应有的时间长得多。

有什么方法可以通过环境变量或其他一些持久性配置文件设置 -j 标志,以便 make 将在这台机器上自动并行执行多个作业?

最佳答案

我假设您使用的是 Linux。这是来 self 的 ~/.bashrc

# parallel make
export NUMCPUS=`grep -c '^processor' /proc/cpuinfo`
alias pmake='time nice make -j$NUMCPUS --load-average=$NUMCPUS'

使用示例

samm@host src> echo $NUMCPUS
8
samm@host src> pmake

变成time Nice make -j8 --load-average=8

为了回答您关于将其放入 Makefile 的具体问题,我发现将此逻辑散布在我的 Makefile 中并不实际。将其放入顶级 Makefile 也不是一个很好的解决方案,因为我经常从子目录构建并希望并行构建它们。但是,如果您有一个相当平坦的源层次结构,它可能适合您。

关于makefile - 为多核机器自动设置作业(-j)标志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4778389/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com