這段時間用到了scons,這裡總結下,也方便我以後查閱。
一、安裝scons
Linux環境(以CentOS為例)
1、yum安裝
yum install scons
2、源碼安裝
下載scons:http://http://jaist.dl.sourceforge.net/project/scons/scons/2.3.0/scons-2.3.0.zip
安裝scons:python setup.py install
二、scons常用命令
scons -c : 可以清除產生的臨時檔案和目標檔案,相當於執行make clean。
scons -Q : 將產生更少的輸出資訊。
三、scons使用樣本
1、編譯可執行檔
使用Program函數進行可執行檔的編譯。
1.1 單檔案方式
1.1.1 編寫程式碼
建立檔案test.c,內容如下:
代碼如下:
#include
int main()
{
printf("Just a test!\n");
return 0;
}
1.1.2 編寫SConstruct代碼
內容如下:
代碼如下:
Program("test1.c")
1.1.3 編譯器
執行scons命令進行編譯,效果如下:
1.2 多檔案方式
1.2.1 編寫程式碼
test1.h檔案:
代碼如下:
#include
void fun11();
test1.c檔案:
代碼如下:
#include "test1.h"
void fun11()
{
printf("fun11\n");
}
test2.c檔案:
代碼如下:
#include "test1.h"
int main()
{
fun11();
return 0;
}
1.2.2 編寫SConstruct代碼
內容如下:
代碼如下:
Program('test', ['test1.c','test2.c'])
或者:
代碼如下:
Program('test',Glob('*.c'))
1.2.3 編譯器
執行scons命令進行編譯。
1.3 依賴
1.3.1 連結庫
文法樣本如下:
代碼如下:
Program('test', ['test1.cpp'],LIBS=['boost_system','boost_thread-mt'], LIBPATH='/usr/lib64')
1.3.2 包含庫
文法樣本如下:
代碼如下:
Program('program',Glob('*.c'),CPPPATH='/home/admin/inc')
2、編譯靜態庫
文法樣本如下:
代碼如下:
Library('libtest1',['test1.c'])
3、編譯動態庫
文法樣本如下:
代碼如下:
SharedLibrary('libtest1',['test1.c'])
三、其它
參考資料
(1) scons首頁:http://www.scons.org/
(2) scons文檔:http://www.scons.org/documentation.php