SCons是一個用Python的新一代軟體建構工具(SCons is a next-generation software construction tool),就像Make一樣可以建構軟體的工具。
CH 2.1. Build Simple C/C++ Programs
主要依具名為SConstruct的檔案進行建構,最小的SConstruct內容如下
Program('hello.c')
這裡面包含兩個資訊,你要建構的程式名稱(hello),以及從哪個檔案建構(hello.c),"Program"在文中被稱為builder_method,主要用於告訴SCons要建構執行檔。
% scons scons: Reading SConscript files ... scons: done reading SConscript files. scons: Building targets ... cc -o hello.o -c hello.c cc -o hello hello.o scons: done building targets.
CH 2.2. Building Object Files
Object('hello.c')
Objcet這個builder method用於告訴SCons如何從指定的source files中建立一個Object file
% scons scons: Reading SConscript files ... scons: done reading SConscript files. scons: Building targets ... cc -o hello.o -c hello.c scons: done building targets.
2.4. Cleaning Up After a Build
在SCons清除(Cleaning Up)一個build只需要在scons後面新增"-c"/"--clean"即可2.5. The SConstruct File
SConstruct之於SCons就等同於Makefile之於Make,而SConstruct是個Python Script,注意,SConstruct的順序並非SCons實際執行的順序 比如該SConstruct的內容與其執行結果分別為
print("Calling Program('hello.c')")
Program('hello.c')
print("Calling Program('goodbye.c')")
Program('goodbye.c')
print("Finished calling Program()")
hello.c先被呼叫,而後才是goodbye.c
% scons
scons: Reading SConscript files ...
Calling Program('hello.c')
Calling Program('goodbye.c')
Finished calling Program()
scons: done reading SConscript files.
scons: Building targets ...
cc -o goodbye.o -c goodbye.c
cc -o goodbye goodbye.o
cc -o hello.o -c hello.c
cc -o hello hello.o
scons: done building targets.
goodbye先被建置,而後才是hello
2.6. Making the SCons Output Less Verbose
參數"-Q"可以讓SCons輸出較少的建置訊息brook@vista:~$ scons -Q gcc -o hello.o -c hello.c brook@vista:~$ scons -c scons: Reading SConscript files ... scons: done reading SConscript files. scons: Cleaning targets ... Removed hello.o scons: done cleaning targets. brook@vista:~$ scons scons: Reading SConscript files ... scons: done reading SConscript files. scons: Building targets ... gcc -o hello.o -c hello.c scons: done building targets.
-
參考資料:
- SCons 3.0.1 User Guide

沒有留言:
張貼留言