Ear*_*one 6 gcc scons io-redirection
我正在使用SCons在工作中构建一个项目,我正在尝试解析GCC的文本输出,以便为每个目标编写所有编译器警告的摘要报告,因为我们的构建脚本很长,并且有一个很多文本输出到控制台.
我搜索谷歌和这个网站已经有一段时间了,我找不到SCons内置的方法来实现这一目标.我已经尝试将整个stdout和stderr流重定向到每个示例的文件,但只捕获SCons本身的输出而不是它调用的任何工具的输出.
我的下一个想法是找到SCons编译参数以发送到GCC并将重定向添加到参数字符串末尾的位置.看完文档后,似乎构造变量CCCOM并CXXCOM包含用于编译的命令行.但是,当我将下面的行添加到我的SConstruct时,SCons正在执行命令行中没有任何更改.
baseEnv['CCCOM'] += " 2> gcc-c-output.txt"
baseEnv['CXXCOM'] += " 2> gcc-cxx-output.txt"
Run Code Online (Sandbox Code Playgroud)
有效的一件事是在整个SCons命令上重定向stderr流:
scons 2> stderr.txt
Run Code Online (Sandbox Code Playgroud)
但是,我想避免这种情况,并尽可能包含SCons中的所有内容.输出也不一定要转到文件.它可以保存在任何地方,只要我可以访问它来解析并保存到构建结束时的文件.
我已经搜索了这么久,没有提出任何问题,所以我不知道还有什么可以尝试的.我不得不相信我不是第一个想做这样的事情的人.
当我弄清楚自己做错了什么时,我会在这里回答我自己的问题.在CCCOM和CXXCOM变量是正确的参数进行修改,但问题是我创建共享库的对象,所以没有被使用这些变量.我应该修改的是SHCCCOM和SHCXXCOM.
以下代码完成了重定向GCC警告输出的工作(警告和错误仅写入stderr):
baseEnv['SHCCCOM'] += " 2> gcc-c-output.txt"
baseEnv['SHCXXCOM'] += " 2> gcc-cxx-output.txt"
Run Code Online (Sandbox Code Playgroud)
希望这个答案能够帮助其他人,因为在搜索时我找不到关于这个主题的更多信息.
| 归档时间: |
|
| 查看次数: |
2014 次 |
| 最近记录: |