加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 运行并行make时出错

发布时间:2020-12-13 23:06:11 所属栏目:Linux 来源:网络整理
导读:考虑以下make: all: a ba: echo a exit 1b: echo b start sleep 1 echo b end 当它作为make -j2运行时,我收到以下输出: echo aecho b startaexit 1b startsleep 1make: *** [a] Error 1make: *** Waiting for unfinished jobs....echo b endb end 我们有一
考虑以下make:

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之后,您可以检查返回代码以查看是否发生了错误.在bash(以及许多其他shell如zsh)上,您可以执行以下操作:

# make
....
# echo $?

如果一切正常,回声将打印0,如果不是,则打印其他内容.

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

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读