- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
自动化编译工具Scons简介
自动化编译工具Scons简介Alex Huangzhfhuang@2008.9.25What is Scons?Next-generation software construction tool. Or make tool ,一个用来建软件的软件,或者使用来保持软件更新(一旦发生源文件变化的情况);Scons最大的不同就是他的配置文件就是一个脚本执行文件,python。而其他的大部分自动编译工具都是写了自己的一个语法规则来实现的。More about Scons跨平台。 支持POSIX systems,windows NT, Mac OS X 。支持从中心代码仓库build除了传统的time stamp,还支持MD5 signatures来作为build依据完全可靠。scons把正确性作为高优先级的设计目标配置文件是python脚本:) 这一点太爽了,对把python作为native language的人来说。基本上 scons的user’s guide可以一目十行。More about Scons 编译过Linux下的Doom3,(雷神之锤)在Google的浏览器chrome中出现还有一些其他的开源项目AqsisArdourBattlefield 1942BlenderDelta3Did SoftwareNullsoft Scriptable Install SystemSuperColliderVMwareCsound5More about Scons scons最为人诟病的就是性能,比起make,jam来说,通常要慢一些,在要求频繁迭代的场合很难满足要求 。 Scons的设计原则:1.正确性 可能牺牲性能保证正确性。或者是为了保证正确性,而改变软件的build的方式2.性能3.方便: 尽可能的做了自动化的东西,比如跨系统,跨平台的自动检测Scons安装安装python安装Scons 下载地址:/ 安装完之后,在命令行下检查是否可执行scons命令,如果不可以的话,检查是否已经将安装路径加到系统路径中如何使用Scons– Hello.c1. 写一个源代码文件 hello.c int main(){ Printf(“hello world”);}2. 编写一个Scons脚本(实际上也就是一个python脚本),名字叫做Sconstruct. Program(‘hello.c’) 3. 命令行下执行scons Sconstruct脚本Sconstruct其实就是一个python执行脚本,(所以支持所有的python语法,比如可以用#来注释脚本),相当于make中的makefile;但是也不是普通的python脚本,执行的时候,是不一定能够按照你写的顺序执行的;Build command in sconstruct(1)1.Program(hello.c) 编译hello.c可执行文件,根据系统自动生成(hello.exe on Windows; hello on POSIX) Program(new_hello,hello.c) 指定Output文件名(new_hello.exe on Windows; new_hello on POSIX) Program([‘main.c’, ‘file1.c’, ‘file2.c’]) 编译多个文件,Output文件名以第一个文件命名(main.exe;main) Program(program, Split(main.c file1.c file2.c)) Build command in sconstruct(2)Object(hello.c) 编译hello.c目标文件,根据系统自动生成(hello.obj on Windows; hello.o on POSIX)Build command in sconstruct(3)3.Library(foo, [f1.c, f2.c, f3.c]) 编译library SharedLibrary(foo, [f1.c, f2.c, f3.c]) 编译 static library StaticLibrary(foo, [f1.c, f2.c, f3.c]) 编译 shared libraryBuild command in sconstruct(4)4.Program(prog.c, LIBS=[foo, bar], LIBPATH=.) 连接库,不需加后缀或是前缀Build command in sconstruct(5)5.判断源文件是否修改 SourceSignatures(MD5) 根据内容是否改变,默认方式 SourceSignatures(timestamp) 根据修改时间6.判断目标文件是否改变 Targ
您可能关注的文档
- 医院护理单元设置布局与管理要求(Setting, layout and management requirements of hospital nursing units).doc
- 北师大版五年级数学上册教材分析50943(Beijing Normal University version of the fifth grade mathematics textbook Book Analysis 50943).doc
- 医院营销三点忠告二点建议(Three point advice on hospital marketing two suggestions).doc
- 十个励志故事,一场精彩的人生课(Ten inspirational stories, a wonderful life lesson).doc
- 十二五规划纲要(Planning outline for 12th Five-Year).doc
- 十二经脉奇经八脉病证(The twelve meridians eight extrameridians syndrome).doc
- 十八岁出门远行(Eighteen years old, go out for a long journey).doc
- 十五计划时期中国通货紧缩的趋势及其税收政策的相机调整(The trend of deflation in China during the fifteen plan period and the adjustment of tax policy).doc
- 十六种做鱼的方法(Sixteen ways to make fish).doc
- 十分钟教你轻松学会傻瓜式理财(Ten minutes to teach you the easy way to fool financial management).doc
文档评论(0)