介绍:Scons是一个开放源码、以Python语言编码的自动化构建工具,可用来替代make编写复杂的makefile。并且scons是跨平台的,只要scons脚本写的好,可以在Linux和Windows下随意编译。


下载地址:https://sourceforge.net/projects/scons//files/
SCons 的设计目标就是让开发人员更容易、更可靠和更快速的建造软件。

与传统的 make 工具比较,SCons 具有以下优点:

使用 Python 脚本做为配置文件
对于 C,C++ 和 Fortran, 内建支持可靠自动依赖分析 . 不用像 make 工具那样需要 执行"make depends"和"make clean"就可以获得所有的依赖关系。
内建支持 C, C++, D, Java, Fortran, Yacc, Lex, Qt,SWIG 以及 Tex/Latex。 用户还可以根据自己的需要进行扩展以获得对需要编程语言的支持。
支持 make -j 风格的并行建造。相比 make -j, SCons 可以同时运行 N 个工作,而 不用担心代码的层次结构。
使用 Autoconf 风格查找头文件,函数库,函数和类型定义。
良好的夸平台性。SCons 可以运行在 Linux, AIX, BSD, HP/UX, IRIX, Solaris, Windows, Mac OS X 和 OS/2 上。

安装

在 SCons 的官方网站上可以查每个平台的具体安装方法。

Win平台的下载和安装就不说了。

Linux下下载tar包,执行以下命令即可:

tar -zxf scons-2.0.1.tar.gz
cd scons-2.0.1 
sudo python setup.py install

对于 Linux 来说,scons 会默认安装到 /usr/loca/bin 目录下,而在 Windows 平台上,则会被安装到 C:\Python25\Scripts 下。

使用
这里通过一个简单的示例来说明。

一个hello.c源文件,一个SConstruct文件,后面再解释。

% ls
hello.c  SConstruct

% cat hello.c
#include <stdio.h>

int main(void)
{
    printf("hello, world!\n");

    return 0;
}

运行Scons,得到如下:

% scons
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
gcc -o hello.o -c hello.c
gcc -o hello hello.o
scons: done building targets.

% ls
hello  hello.c  hello.o  SConstruct

% ./hello 
hello, world!

就是这样,程序编译完成了。到这里Scons似乎与make没有什么两样,同样的操作,只是把scons换成make,SConstruct换成Makefile。

对,不同的地方就在于,下面的展示:

% cat SConstruct 
Program("hello.c")

哈哈,你没看错,就这一行,编译就完成了!!!

事实确实如此,它比传统的 Makefile 简单很多。SConstruct 以 Python 脚本的语法编写,你可以像编写 Python 脚本一样来编写它。