【发布时间】:2017-07-30 17:16:55
【问题描述】:
我正在寻找一种在 makefile 中记录编译错误的方法,但这是我的问题:
不带日志功能的行如下:
$(OBJ_PATH)/%.obj: $(SRC_PATH_ASW)/%.c
@echo -Compiling $<:
$(CC) $(INCLUDE_ASW) $(INCLUDE_ASW_AUTO) $(INCLUDE_BSW) -c $< $(CFLAGS)
我尝试使用以下命令在日志文件中重定向标准错误和/或标准输出
$(OBJ_PATH)/%.obj: $(SRC_PATH_ASW)/%.c
@echo -Compiling $<:
$(CC) $(INCLUDE_ASW) $(INCLUDE_ASW_AUTO) $(INCLUDE_BSW) -c $< $(CFLAGS) > $@.log
此解决方案不会将消息显示到终端,而只会显示在日志文件中。 (我尝试了所有可能的重定向但没有成功)
我也尝试过 tee 但问题不同,事实上 makefile 不会在第一次出错时停止,因为 tee 命令返回码总是成功的。
$(OBJ_PATH)/%.obj: $(SRC_PATH_ASW)/%.c
@echo -Compiling $<:
$(CC) $(INCLUDE_ASW) $(INCLUDE_ASW_AUTO) $(INCLUDE_BSW) -c $< $(CFLAGS) | tee $@.log
如果可能的话,我希望能够将编译结果记录到文件中并显示它,但是 makefile 在第一次编译错误时停止并且不会继续其他文件编译。
感谢您的支持。
【问题讨论】:
-
man tee是一个很好的开始