如何将Clang诊断保存到文件中?

时间:2012-08-21 11:19:06

标签: makefile clang

我正在编写一个Web服务器,主要用于练习,并决定学习make和makefiles。我的目标是自动化构建到我的vps,使用Clang / LLVM构建软件,并将诊断保存到文本文件,以便脚本提交到我的电子邮件地址。我似乎无法实现的是将诊断保存到我的文件中。

虽然我的Clang成功构建并生成诊断程序,并且我的makefile似乎有效,但我无法从makefile内部和命令行重定向诊断程序。

我的makefile(正常工作,但稍加修改以适应保存结果的需要):

# Makefile to build Ironman HTTP Server
# We will use the clang frontend from the llvm compiler infrastructure
# for building

# --- targets
Ironman : 
        clang -o Ironman src/Ironman.c > report

# --- remove binary and executable files
clean:
        rm -f Ironman
        rm -f report

我怀疑(我在这里可能非常错误)这种情况发生了,因为clang并没有真正返回诊断,它只是打印它们。我不知道是否是这种情况,并且Clang用户指南没有提出类似的建议。

[编辑]:我和Clang玩了一下,看到成功编译它返回0.我测试的方法是:

$ clang <source_file.c>
$ echo $?
0

这表明我的理论可能是正确的,这使事情变得复杂: - \

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:6)

Clang像任何其他程序一样,向stderr输出诊断信息。你可以像这样将stderr重定向到stdout:

Ironman : 
    clang -o Ironman src/Ironman.c > report 2>&1