scons简介.ppt

scons简介.ppt

ID:21611374

大小:91.00 KB

页数:33页

时间:2018-10-19

scons简介.ppt_第1页
scons简介.ppt_第2页
scons简介.ppt_第3页
scons简介.ppt_第4页
scons简介.ppt_第5页
资源描述:

《scons简介.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、自动化编译工具Scons简介AlexHuangzhfhuang@telenav.cn2008.9.25WhatisScons?Next-generationsoftwareconstructiontool.Ormaketool,一个用来建软件的软件,或者使用来保持软件更新(一旦发生源文件变化的情况);Scons最大的不同就是他的配置文件就是一个脚本执行文件,python。而其他的大部分自动编译工具都是写了自己的一个语法规则来实现的。MoreaboutScons跨平台。支持POSIXsystems,windowsNT,MacOSX。支持从中心代

2、码仓库build除了传统的timestamp,还支持MD5signatures来作为build依据完全可靠。scons把正确性作为高优先级的设计目标配置文件是python脚本:)这一点太爽了,对把python作为nativelanguage的人来说。基本上scons的user’sguide可以一目十行。MoreaboutScons编译过Linux下的Doom3,(雷神之锤)在Google的浏览器chrome中出现还有一些其他的开源项目AqsisArdourBattlefield1942BlenderDelta3DidSoftwareNulls

3、oftScriptableInstallSystemSuperColliderVMwareCsound5MoreaboutSconsscons最为人诟病的就是性能,比起make,jam来说,通常要慢一些,在要求频繁迭代的场合很难满足要求。Scons的设计原则:1.正确性可能牺牲性能保证正确性。或者是为了保证正确性,而改变软件的build的方式2.性能3.方便:尽可能的做了自动化的东西,比如跨系统,跨平台的自动检测Scons安装安装python安装Scons下载地址:http://www.scons.org/安装完之后,在命令行下检查是否可执行

4、scons命令,如果不可以的话,检查是否已经将安装路径加到系统路径中如何使用Scons–Hello.c1.写一个源代码文件hello.cintmain(){Printf(“helloworld”);}2.编写一个Scons脚本(实际上也就是一个python脚本),名字叫做Sconstruct.Program(‘hello.c’)3.命令行下执行sconsSconstruct脚本Sconstruct其实就是一个python执行脚本,(所以支持所有的python语法,比如可以用#来注释脚本),相当于make中的makefile;但是也不是普通的p

5、ython脚本,执行的时候,是不一定能够按照你写的顺序执行的;Buildcommandinsconstruct(1)1.Program('hello.c')编译hello.c可执行文件,根据系统自动生成(hello.exeonWindows;helloonPOSIX)Program('new_hello','hello.c')指定Output文件名(new_hello.exeonWindows;new_helloonPOSIX)Program([‘main.c’,‘file1.c’,‘file2.c’])编译多个文件,Output文件名以第一

6、个文件命名(main.exe;main)Program('program',Split('main.cfile1.cfile2.c'))Buildcommandinsconstruct(2)Object('hello.c')编译hello.c目标文件,根据系统自动生成(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')根据内容是否改变,默认方式SourceSignatures('timest

8、amp')根据修改时间6.判断目标文件是否改变TargetSignatures('build')根据编译结果TargetSignatures('content')根

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。