gpt4 book ai didi

linux - 制作 -j$TOTAL_PROCESSORS

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:42:16 25 4
gpt4 key购买 nike

“make -j$TOTAL_PROCESSORS”是什么意思?

假设我有一个双核处理器,它将执行“make -j2”。它到底有什么作用?

我在下面添加一个小例子

为了编译我的工具链,脚本文件使用 -

pushd toolchaindir

export TARGET=powerpc-linux-gnu
export LINUX_ARCH=powerpc

TOTAL_PROCESSORS=$(grep processor /proc/cpuinfo | wc -l)
make -j$TOTAL_PROCESSORS

if [ "$?" = "0" ]; then
echo "built toolchain successfully"
else
echo "failed during build"
exit 1
fi
popd
exit 0

它如何构建工具链?

最佳答案

make -j2 告诉 make 它可以同时运行两个 shell 命令。 Make 决定它是否可以从您的 makefile 中执行此操作,因此您最好正确编写您的 makefile!

考虑这个 noddy makefile:

1.o: 1.c
gcc -c 1.c -o 1.o

2.o: 2.c
gcc -c 2.c -o 2.o

prog: 1.o 2.o
gcc 1.o 2.o -o prog

如果你说make -j2 prog,那么make聪明地决定1.o的产生完全独立于2.o .因此它可以同时运行两个编译而不会出错。确实如此。在最后的链接步骤中将两个目标文件合并到 prog 之前,等待这些编译完成。

非常聪明,只要你的 makefile 正确(如果它们不能在 -jn 下工作,那么它们就很糟糕!)。

关于linux - 制作 -j$TOTAL_PROCESSORS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5250636/

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