scons随笔
Scons是新一代的软件构件工具,或者说make工具。SCons比较特别的一点是,它的配置文件实际就是通用的python脚本,而其它make工具一般都是自定义一套私有的语言。个人感觉这既是优点又是缺点,对于已经熟悉python的人来说,这非常好,省去学习成本,但对于从未接触过python的人来说,用python做为一种make脚本,实在是过于灵活了。
SCons的设计原则
正确,这一点从使用MD5作为文件更新检查算法就可见一斑。要知道make使用的是时间戳,在没有ntp服务器的情况下,很容易出现因本地时间与服务器不同步而导致的不正常build。
高效,只能说在满足正确的前提下做到高效,毕竟python在性能上还是无法和make相比的,当然前者可以做的事情也更多。
方便,因为已经设定了一些默认的基本的原则,所以只需要编写很少的代码就可以完成一个项目的build。这一点比make是要好。当然做一个通用的makefile模板也不是什么难事。
1.安装SCons
因为SCons基于python,所以首先要安装python,本人安装的是官方推荐的python 2.5.1。SCons可以在多种OS上运行,windows的版本可以在http://www.scons.org/download.php找到。
2.hello world
用C写一个hello world, 如下
int main()
{
printf("Hello, world!\n");
}
保存文件名为hello.c,想要用scons来build这个文件,只需要,
a.在同一目录下,建立一个名为SConstruct的文件
b.在该文件中加入一行,
Program('hello.c')
如果只是想compile objects,不做link,可以改为,
Object('hello.c')
c.在当前目录下执行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.
3.make clean
makefile的忠实用户一般都会在makefile中加入clean,作用是删除已经产生的objects,可执行文件等,scons已经内置该功能,不需要额外添加代码,执行scons –c。
% scons -c
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Cleaning targets ...
Removed hello.o
Removed hello
scons: done cleaning targets.
4. SConstruct和makefile
SConstruct和makefile有着本质的不同,但又有着惊人的相似之处。不同的是SConstruct是一个典型的python脚本,具有一切python脚本的特性;相似的是,和makefile一样都是declarative型(非imperative型)脚本,也就是说Program, Object这些定义并不立即触发编译动作。
5. build多个文件
Program(['prog.c', 'file1.c', 'file2.c'])
指定目标文件的名字为myprog,
Program('myprog', ['prog.c', 'file1.c', 'file2.c'])
注意编译多个文件和指定目标文件可能会有语义上的歧义,因此使用文件列表时要用中括号。
分享到:
相关推荐
scons3.0.1 scons-design
scons-manscons-man
+scons_project_root 【src】 #源代码目录 [dir1] [dir2] [dir3] main.c 【target】 #目标输出目录 [include] [lib] [bin] 通过scons也实现这些功能。 至于scons的一些基本知识,请baidu查找,...
python和scons安装包及安装截图说明,适合windows 64位系统。没找到分值设置位置,建议版主设置分数为1分
scons
Python2.6 scons1.3
自动化编译工具scons简介 自动化编译工具scons简介 自动化编译工具scons简介
scons类似于makefile,只是scons是python编写的,并且搭建scons比搭建makefile简单,其中python语言也很容易学习,不过这个文档没有详细的一个大型项目的搭建用例,请注意是英文版
scons-2.2.0.tar.gz Ubuntu安装包
scons-2.2.0.rar使用工具
SCons用户指南.pdf
发掘Scons——替代Make的Python工具:Scons是用Python实现的一款跨平台的开源Build Tool,用Python实现意味着Scons比Make所使用的类Shell语言更贴近于自然语言,更易于理解和控制;用Python实现的另一个好处也是Make...
SCons is an Open Source software construction tool—that is, a next-generation build tool. Think of SCons as an improved, cross-platform substitute for the classic Make utility with integrated ...
scons-design scons-design
scons-3.0.5.zip windows平台下的scons。1.本人用来mong编程生成库所使用的。2.其他功能不清楚3.搬运工免费
从官网下下来的scons 2.4.0 用户指南。目前是最新版,包括用户指南,帮助文档,API文档。
scons是一个Python写的自动化构建工具,同Linux的make工具功能相似。
Scons V3.0.5
scons-2.5.1-2.all.zip
SCons的介绍,API,Man,Usr,design,共四篇文档