scons簡介.ppt

scons簡介.ppt

ID:21611374

大小:91.00 KB

頁數(shù):33頁

時(shí)間:2018-10-19

scons簡介.ppt_第1頁
scons簡介.ppt_第2頁
scons簡介.ppt_第3頁
scons簡介.ppt_第4頁
scons簡介.ppt_第5頁
資源描述:

《scons簡介.ppt》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、自動化編譯工具Scons簡介AlexHuangzhfhuang@telenav.cn2008.9.25WhatisScons?Next-generationsoftwareconstructiontool.Ormaketool,一個(gè)用來建軟件的軟件,或者使用來保持軟件更新(一旦發(fā)生源文件變化的情況);Scons最大的不同就是他的配置文件就是一個(gè)腳本執(zhí)行文件,python。而其他的大部分自動編譯工具都是寫了自己的一個(gè)語法規(guī)則來實(shí)現(xiàn)的。MoreaboutScons跨平臺。支持POSIXsystems,windowsNT,MacOSX。支持從中心代

2、碼倉庫build除了傳統(tǒng)的timestamp,還支持MD5signatures來作為build依據(jù)完全可靠。scons把正確性作為高優(yōu)先級的設(shè)計(jì)目標(biāo)配置文件是python腳本:)這一點(diǎn)太爽了,對把python作為nativelanguage的人來說?;旧蟬cons的user’sguide可以一目十行。MoreaboutScons編譯過Linux下的Doom3,(雷神之錘)在Google的瀏覽器chrome中出現(xiàn)還有一些其他的開源項(xiàng)目AqsisArdourBattlefield1942BlenderDelta3DidSoftwareNulls

3、oftScriptableInstallSystemSuperColliderVMwareCsound5MoreaboutSconsscons最為人詬病的就是性能,比起make,jam來說,通常要慢一些,在要求頻繁迭代的場合很難滿足要求。Scons的設(shè)計(jì)原則:1.正確性可能犧牲性能保證正確性?;蛘呤菫榱吮WC正確性,而改變軟件的build的方式2.性能3.方便:盡可能的做了自動化的東西,比如跨系統(tǒng),跨平臺的自動檢測Scons安裝安裝python安裝Scons下載地址:http://www.scons.org/安裝完之后,在命令行下檢查是否可執(zhí)行

4、scons命令,如果不可以的話,檢查是否已經(jīng)將安裝路徑加到系統(tǒng)路徑中如何使用Scons–Hello.c1.寫一個(gè)源代碼文件hello.cintmain(){Printf(“helloworld”);}2.編寫一個(gè)Scons腳本(實(shí)際上也就是一個(gè)python腳本),名字叫做Sconstruct.Program(‘hello.c’)3.命令行下執(zhí)行sconsSconstruct腳本Sconstruct其實(shí)就是一個(gè)python執(zhí)行腳本,(所以支持所有的python語法,比如可以用#來注釋腳本),相當(dāng)于make中的makefile;但是也不是普通的p

5、ython腳本,執(zhí)行的時(shí)候,是不一定能夠按照你寫的順序執(zhí)行的;Buildcommandinsconstruct(1)1.Program('hello.c')編譯hello.c可執(zhí)行文件,根據(jù)系統(tǒng)自動生成(hello.exeonWindows;helloonPOSIX)Program('new_hello','hello.c')指定Output文件名(new_hello.exeonWindows;new_helloonPOSIX)Program([‘main.c’,‘file1.c’,‘file2.c’])編譯多個(gè)文件,Output文件名以第一

6、個(gè)文件命名(main.exe;main)Program('program',Split('main.cfile1.cfile2.c'))Buildcommandinsconstruct(2)Object('hello.c')編譯hello.c目標(biāo)文件,根據(jù)系統(tǒng)自動生成(hello.objonWindows;hello.oonPOSIX)Buildcommandinsconstruct(3)3.Library('foo',['f1.c','f2.c','f3.c'])編譯librarySharedLibrary('foo',['f1.c','f

7、2.c','f3.c'])編譯staticlibraryStaticLibrary('foo',['f1.c','f2.c','f3.c'])編譯sharedlibraryBuildcommandinsconstruct(4)4.Program('prog.c',LIBS=['foo','bar'],LIBPATH='.')連接庫,不需加后綴或是前綴Buildcommandinsconstruct(5)5.判斷源文件是否修改SourceSignatures('MD5')根據(jù)內(nèi)容是否改變,默認(rèn)方式SourceSignatures('timest

8、amp')根據(jù)修改時(shí)間6.判斷目標(biāo)文件是否改變TargetSignatures('build')根據(jù)編譯結(jié)果TargetSignatures('content')根

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時(shí)可能會顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。