winston 发表于 2012-3-24 00:11:27

使用 SCons 代替 Makefile 快速构建应用程序


[*]作者:柳大·Poechant
[*]博客:blog.CSDN.net/Poechant
[*]邮箱:zhongchao.ustc@gmail.com
[*]Copyright © 柳大·Poechant
0 Introduction为 make 工具编写建造规则不是一件容易的事。它复杂的配置规则,即使是有经验的开发者也望而生畏。make 工具的许多替代品便因此而诞生,SCons 就是是其中之一。SCons 是一个用 Python 语言编写的类似于 make 工具的程序。与 make 工具相比较,SCons 的配置文件更加简单清晰明了,除此之外,它还有许多的优点。SCons 支持多种操作系统平台,实现程序的构建可移植性。1 Install$ tar zvf tar -zxf scons-2.0.1.tar

$ cd scons-2.0.1
$ sudo python setup.py install
2 Hello World2.1 Source File#include <stdio.h>
#include <stdlib.h>

int main(int argc, char* argv[])
{
    printf("Hello, SCons!\n");
    return 0;
}
2.2 Config FileProgram('helloscons.c')
2.3 Build$ ls helloscons
helloscons.cSConstruct

$ cd helloscons/
$ scons
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
gcc -o helloscons.o -c helloscons.c
gcc -o helloscons helloscons.o
scons: done building targets.

$ ls
hellosconshelloscons.chelloscons.oSConstruct

$ ./helloscons
Hello, SCons!
2.4 Run$ ./helloscons
Hello, SCons!
2.5 Clean$ scons -c
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Cleaning targets ...
Removed helloscons.o
Removed helloscons
scons: done cleaning targets.

$ ls -a
helloscons.cSConstruct .sconsign.dblite
3 Improve your skills!3.1 Specify your executable file nameProgram('myscons, 'helloscons.c')
3.2 Be quiet when building!$ scons -Q 3.3 A little more complicated programProgram('helloscons2', ['helloscons2.c', 'file1.c', 'file2.c'],
    LIBS = 'm',
    LIBPATH = ['/usr/lib', '/usr/local/lib'],
    CCFLAGS = '-DHELLOSCONS')

$ scons -Q
gcc -o file1.o -c -DHELLOSCONS file1.c
gcc -o file2.o -c -DHELLOSCONS file2.c
gcc -o helloscons2.o -c -DHELLOSCONS helloscons2.c
gcc -o helloscons2 helloscons2.o file1.o file2.o -L/usr/lib -L/usr/local/lib -lm
3.4 Regular expressionProgram('helloscons2', Glob('*.c')
4 Reference
[*]http://www.ibm.com/developerworks/cn/linux/l-cn-scons/index.html?ca=drs-
-转载请注明来自“柳大的CSDN博客”:blog.CSDN.net/Poechant-
页: [1]
查看完整版本: 使用 SCons 代替 Makefile 快速构建应用程序