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每一步都在干什么??梢杂玫絇rogress方法。
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)
轉自:Scons 三 - 一張紅楓葉 - 博客園
總結
- 上一篇: java垃圾收集哪些叙述_关于垃圾收集的
- 下一篇: linux 驱动笔记(四)