我正在寻找一种在makefile中记录编译错误的方法,但这是我的问题:
没有日志功能的行如下:
AppComponent
我尝试使用以下命令将stderr和/或stdout重定向到日志文件中
constructor(private _router: Router) {
this._router.events.pairwise().subscribe((event) => {
console.log(event);
});
}
此解决方案不会向终端显示消息,但仅在日志文件中显示。 (我尝试了所有可能的重定向但没有成功)
我也试过tee但是问题不同,实际上makefile在第一次出错时不会停止,因为tee命令返回码总是会成功。
$(OBJ_PATH)/%.obj: $(SRC_PATH_ASW)/%.c
@echo -Compiling $<:
$(CC) $(INCLUDE_ASW) $(INCLUDE_ASW_AUTO) $(INCLUDE_BSW) -c $< $(CFLAGS)
如果可能的话,我想要的是能够将编译结果记录到文件中以及显示它,但是makefile在第一次编译错误时停止并且不继续其他文件编译。
感谢您的支持。
答案 0 :(得分:0)
我也经常想要这样做,我想出的解决方案是创建这个简短的shell脚本,别名make来运行它。
#!/bin/sh
make $* | tee make.log
答案 1 :(得分:0)
您可以使用set -o pipefail
或PIPESTATUS[0]
set -o pipefail; $(CC) ... | tee file.log
如果$(CC) ...
或tee...
命令失败,将返回错误。或者,如果你只是做
$(CC) ... | tee file.log
然后${PIPESTATUS[0]}
将是第一个命令($(CC)...
)的错误代码(例如,您可以在该行的末尾添加exit ${PIPESTATUS[0]}
。