我正在使用SCons在工作中构建一个项目,并且我正在尝试解析来自 GCC 的文本输出,以便为每个目标生成所有编译器警告的摘要报告,因为我们的构建脚本很长,并且有一个大量文本输出到控制台。
我已经在 Google 和这个网站上搜索了很长一段时间,但我找不到 SCons 内置的方法来完成这项工作。我已经尝试按照这个示例将整个 stdout 和 stderr 流重定向到一个文件,但只捕获 SCons 本身的输出,而不是它调用的任何工具的输出。
我的下一个想法是找到 SCons 编译参数以发送到 GCC 的位置,并将重定向添加到参数字符串的末尾。阅读文档后,似乎构造变量CCCOM
并CXXCOM
包含用于编译的命令行。但是,当我将以下几行添加到我的 SConstruct 时,SCons 正在执行的命令行中没有任何变化。
baseEnv['CCCOM'] += " 2> gcc-c-output.txt"
baseEnv['CXXCOM'] += " 2> gcc-cxx-output.txt"
起作用的一件事是在整个 SCons 命令上重定向 stderr 流:
scons 2> stderr.txt
但是,我想避免这种情况,并尽可能将所有内容包含在 SCons 中。输出也不一定必须转到文件。只要我可以访问它以在构建结束时解析并保存到文件中,它就可以保存在任何地方。
我已经搜索了这么久,也没有找到任何东西,所以我不知道还有什么可以尝试的。我必须相信我不是第一个想要做这样的事情的人。