最后制作--输出同步错误

问题描述 投票:0回答:1

当使用 Make 的

--output-sync
选项并且出现构建错误时,有什么方法可以让 Make 最后打印错误消息吗?

现在,如果您使用高

-j
参数进行编译,错误消息将在正在编译的其他文件的输出之前打印,我经常需要在终端中滚动很多次才能看到错误消息。

gnu-make
1个回答
0
投票
.PHONY: all

all:
   @$(MAKE) --no-print-directory -j8 || (sleep 1 && false)
   
build:
   @echo "Building..."
   @sleep 1
   @echo "Done"

fail:
   @echo "Failing..." 
   @sleep 1
   @false
   

要在 Make 中使用

--output-sync
时最后打印错误消息,可以在主 make 命令后添加
|| (sleep 1 && false)

如果主 make 命令失败,这将使其休眠 1 秒,然后返回失败退出代码。由于故障发生在睡眠之后,因此它会最后打印错误。

@
抑制回显命令本身。

所以在这个例子中,如果

fail
目标失败,它将打印常规输出,然后“失败...”,然后1秒后打印实际错误。

© www.soinside.com 2019 - 2024. All rights reserved.