Scons 三
控制输出:
在scons脚本调试中,输出是一个重要的环节,通过输出我们可以观察调试期间的步骤,便于定位问题
Help函数可以输出help相关的打印
Help("""
scons help command
""")
当执行scons -h的时候,就会打印出相关的text
scons: Reading SConscript files ...
cc=gcc
/home/maple/posix_thread
/home/maple/scons_prj:/usr/local/bin:/opt/bin:/bin:/usr/bin
gcc
scons: done reading SConscript files.
scons help command
Use scons -H for help about command-line options.
$*COM参数
如果我们想在编译或者链接的时候有相应的打印。则可以用到$*COM参数,比如编译的参数CCCOMSTR,链接的参数LINKCOMSTR。在Environment设置这两个参数
env = Environment(CCCOMSTR="Compileing $TARGET",LINKCOMSTR="Linking $TARGET")
打印如下,可以看到对应的输出。
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
Compileing scon_test.o
gcc -o test.o -c test.c
gcc -o test test.o
Linking scon_test
scons: done building targets.
Progress方法
在scons执行的过程中,我们想知道scons每一步都在干什么。可以用到Progress方法。
Progress('Evaluating $TARGET\n')
这样在scons每次执行的过程中都会打印Evaluating target名字. 打印如下:
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
Evaluating Sconstruct
Evaluating scon_test.c
Evaluating inc/var.h
Evaluating /usr/bin/gcc
Evaluating scon_test.o
gcc -o scon_test.o -c -O2 -Iinc scon_test.c
Evaluating test.c
Evaluating test.o
gcc -o test.o -c test.c
Evaluating test
gcc -o test test.o
Evaluating src/libfunc.a
Evaluating scon_test
gcc -o scon_test scon_test.o -Lsrc -lfunc
Evaluating inc
Evaluating src
Evaluating .
scons: done building targets.
如果想得到编译失败的信息,可以用GetBuildFailures函数,并用atexit将这个错误打印函数注册进去。
import atexit
def print_build_failures():
from SCons.Script import GetBuildFailures
for bf in GetBuildFailures():
print("%s failed: %s" % (bf.node, bf.errstr))
atexit.register(print_build_failures)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架