我正在写一个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
Run Code Online (Sandbox Code Playgroud)
我怀疑(我可能在这里非常错误)这是因为clang并没有真正返回诊断,它只是打印它们.我不知道是否是这种情况,并且Clang用户指南没有提出类似的建议.
[编辑]:我和Clang玩了一下,看到在成功编译时它返回0.我测试它的方法是:
$ clang <source_file.c>
$ echo $?
0
Run Code Online (Sandbox Code Playgroud)
这表明我的理论可能是正确的,这使事情复杂化: - \
有人能指出我正确的方向吗?
与任何其他程序一样,Clang向stderr输出诊断信息.你可以像这样将stderr重定向到stdout:
Ironman :
clang -o Ironman src/Ironman.c > report 2>&1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2059 次 |
| 最近记录: |