日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Scons

發布時間:2023/12/20 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)

轉自:Scons 三 - 一張紅楓葉 - 博客園

總結

以上是生活随笔為你收集整理的Scons的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。