gpt4 book ai didi

linux - 运行并行 make 时出错

转载 作者:IT王子 更新时间:2023-10-29 01:17:37 27 4
gpt4 key购买 nike

考虑以下品牌:

all: a b

a:
echo a
exit 1


b:
echo b start
sleep 1
echo b end

当以 make -j2 运行它时,我收到以下输出:

echo a
echo b start
a
exit 1
b start
sleep 1
make: *** [a] Error 1
make: *** Waiting for unfinished jobs....
echo b end
b end

我们有一个很大的 make 文件,很容易错过错误,因为在执行结束时没有错误消息。

有没有办法让错误消息也出现在 make 执行的结尾

更新:

查看我可能的 solution如何从 make 中检查 make 退出状态。

最佳答案

如果make 调用的任何程序返回错误,make 的返回码将不会为零。因此,在调用 make 之后,您可以只检查返回代码以查看是否发生了错误。在 bash(以及许多其他 shell,如 zsh)上,您可以执行以下操作:

# make
....
# echo $?

如果一切正常,echo 将打印 0,否则将打印其他内容。

您还可以从 shell 脚本中运行检查:

make
if [ $? -eq 0 ]; then
echo "Everything OK"
else
echo "Something went wrong!"
fi

如果您需要确切的错误消息,最简单的方法是将 make 的输出重定向到某个文件,如果执行失败则使用 grep 获取错误信息。

但我通常这样做的方式是并行运行 make 并在出现问题时使用 -j1 重新执行它,这样我会得到一条干净的错误消息.我想这可以使用上述技术放入 shell 脚本中。

关于linux - 运行并行 make 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10971615/

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