gpt4 book ai didi

scons - 将 scons 构建器输出重定向到文件

转载 作者:行者123 更新时间:2023-12-02 02:51:55 26 4
gpt4 key购买 nike

我正在使用 scons 来构建一个项目。效果很好。但是我们的构建命令只是将结果输出到标准输出,我需要让它对我们的软件团队更有用一点。

以下是我想要的行为,按优先顺序排列。有人可以帮我实现它们吗?

  1. 没有真正的改进:scons > build-summary.txt——这只是将标准输出重定向到一个文件。是的,如果我记得我的系统 (WinXP) 上的适当语法,我也可以重定向 stderr,但这并不能帮助我将详细的构建输出与正在构建的文件的重要摘要分开。

  2. 摘要+详细构建信息的分离:获取所有构建命令的stdout + stderr以重定向到指定的输出文件(例如build-summary.txt),但保留scons的输出本身将转到 stdout/stderr。

  3. 使用 XML 的结构化构建输出:获取所有构建命令的 stdout + stderr 以重定向到指定的输出文件,并以 XML 格式执行此操作,例如如下。输出已经足够详细了,我不在乎是否有 XML 开销。显然,stdout 和 stderr 的内容需要转义才能包含在 XML 中。

    <build-step builder="Compiler">
    <output>c:/foo/someFile.obj</output>
    <input>c:/foo/someFile.cpp c:/foo/someFile.h</input>
    <command>cc someFile.cpp -l someLib.lib ...</command>
    <stdout>Remark: you should be using lint</stdout>
    <stderr>Warning: variable foo was declared but never referenced</stderr>
    </build-step>
    <build-step builder="Compiler">
    <output>c:/foo/someFile.exe</output>
    <input>c:/foo/someFile.obj c:/foo/otherFile.obj</input>
    <command>cc -o someFile.exe someFile.obj otherFile.obj</command>
    <stdout>Success! Hurray!</stdout>
    <stderr></stderr>
    </build-step>

最佳答案

您必须自己做一些工作才能获得正确的格式,但 SCons wiki 上有关于如何 control command line output 的说明。对于 scons 运行的命令。

为了将编译器的输出获取到日志文件中,您可以执行类似 BuildLog 中间的缓冲输出片段的操作。维基页面。您可以将它们全部写入您自己的日志文件,而不是打印命令字符串并重复 stdout 和 stderr。

很抱歉让您自己了解详细信息,但这也许足以让您开始。

关于scons - 将 scons 构建器输出重定向到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4511713/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com