Web Analytics

使用Scons改造现有项目

今天是冬至,也是入冬以来感觉最冷的一天,毫不夸张的说:你一张嘴,牙就冻上了。上午LP在家收拾卫生,我继续用Scons改造现有的项目。下午出去理发,头发长长了后,似乎会造成思维迟钝^_^。 试验性的用Scons改造现有的project,过程中对Scons了解又多了一些。上篇文章对Scons的性能没有给出定论,经过对Scons的深入后,发现Scons在执行初始时的性能的确不够快,这是因为Scons启动后,会对全部SConstruct以及下面子目录中的SConscript进行分析,子目录越多Sconscript文件个数越多,性能也就越差。但是这种分析也有一个优点,就是能帮你提前发现你SConscript中的一些“语义”错误,比如如果你在编译两个基础库,一个叫add,一个叫sub,这个基础库源码分别分布在两个目录add和sub中,编译后将分别生成libadd.a和libsub.a的库文件,但是如果你马虎了,在编写SConscript时将target都写成了’add’或都写成了’sub’,则Scons会在执行gcc之前就帮你找出这个"语义"错误,提示如下: /export/home1/tony_bai/xxlib>scons -f SC*t scons: Reading SConscript files … scons: *** Multiple ways to build the same target were specified for: /export/home1/tony_bai/xxlib/lib/libsub.a (from [’/export/home1/tony_bai/xxlib/add/libsub.a’] and from [’libsub.a’]) File “/export/home1/tony_bai/xxlib/sub/SConscript”, line 3, in ...

December 21, 2008 · 6 min · Tony Bai

发掘Scons

发现或者说知道SCons是缘于Google的comp.lang.c group上的一则名为"Best Build Tool for large C projects “的帖子,帖子的作者列出了11条他认为"Best Build Tool"应该具备的特点,并欲找到这样的Build Tool。在该帖子的回复中,有人提到了Scons,说来惭愧,这是我第一次听说到有这样一个工具。一直在Unix下编写C程序,习惯了Make,也对Make的复杂度和较为陡峭的学习曲线有所了解,曾经尝试使用Autoconf和Automake,但是都因上手困难而放弃。自己心底也一直想找到一个更简单一些的但又不失功能的适合C的Build Tool,Scons是否能满足的需要的呢?好奇心驱使着我去发掘一下Scons。 ...

December 14, 2008 · 6 min · Tony Bai