scons 使用说明简介
2010-04-07 19:03
387 查看
scons是一个自动化编译软件,可以替代autoconf、automake系列工具。
官方网站:http://www.scons.org
使用scons时,需要编写一个SConstruct文件,这是是一个python脚本,根据此脚本,scons自动完成依赖关系的推导以及编译链接等过程。
以HelloWorld为例,我们有一最简单的源码文件hell.c
我们编写SConstruct内容如下:
官方网站:http://www.scons.org
使用scons时,需要编写一个SConstruct文件,这是是一个python脚本,根据此脚本,scons自动完成依赖关系的推导以及编译链接等过程。
以HelloWorld为例,我们有一最简单的源码文件hell.c
我们编写SConstruct内容如下:
# Arrange to build the "hello" program. Program('hello.c') # "hello.c" is the source file. 然后在shell中输入: scons回车 即可编译得到目标代码hello 同时编译多个目标,Sconstruct文件实例如下: print "Calling Program('hello.c')" Program('hello.c') print "Calling Program('goodbye.c')" Program('goodbye.c') print "Finished calling Program()" 上述文件可以实现同时编译hello和goodbye两个目标。 和Makefile类似,Sconstruct文件中的各条语句并不是串行执行的,上述代码输出为: %scons scons: Reading SConscript. files ... Calling Program('hello.c') Calling Program('goodbye.c') Finished calling Program() scons: done reading SConscript. files. scons: Building targets ... cc -o goodbye.o -c goodbye.c cc -o goodbye goodbye.o cc -o hello.o -c hello.c cc -o hello hello.o scons: done building targets. 执行scons -Q可以减少编译时输出内容 执行scons -c相当于make clean 上面的代码中,输出目标文件名都是根据源文件名自动推导的,也可以手动指定输出文件名 Program('new_hello', 'hello.c') 对于依赖多个源文件的目标程序编译,实例如下: Program('program', ['prog.c', 'file1.c', 'file2.c']) 其中,Program函数的第二个参数为一个指定源文件名的字符串数组,python里面数组用[]表示。 由于Sconstruc就是一个python脚本,所以对于文件列表参数可以进行数组的各种运算,如 common = ['file1.c', 'file2.c'] Program('program', 'prog.c'+common) 与上面等价 可以使用Glob函数配置符合指定命名规则的文件,如: Program('program', Glob('*.c')) 可以匹配当前目录下所有c文件 编译库文件 静态库,将Program替换为Library或StaticLibrary即可,如: Library('foo', ['f1.c', 'f2.o', 'f3.c', 'f4.o']) 或 StaticLibrary('foo', ['f1.c', 'f2.c', 'f3.c']) 动态苦,将Program替换为SharedLibrary即可,如: SharedLibrary('foo', ['f1.c', 'f2.c', 'f3.c']) 如何指定链接参数 Program('prog.c', LIBS='foo', LIBPATH='.')
相关文章推荐
- SQLServer游标(Cursor)简介和使用说明 及全局变量说明和功能
- [转载]ASIHTTPRequest类库简介和使用说明
- ASIHTTPRequest类库简介和使用说明
- SQLServer游标(Cursor)简介和使用说明
- ASIHTTPRequest类库简介和使用说明
- MySQL入门——约束简介、外键约束说明、外键约束主表与子表的创建与使用约束案例
- ASIHTTPRequest类库简介和使用说明
- c++中STL库 简介 及 使用说明
- ASIHTTPRequest类库简介和使用说明
- [转载] 内容摘要:AWStats的使用简介和配置一些改进说明。
- 高维数据的应对手段: 主成分分析(PCA)简介+numpy实现+weka使用说明
- VLC简介及使用说明
- ASIHTTPRequest类库简介和使用说明
- ASIHTTPRequest类库简介和使用说明
- c++中STL库 简介 及 使用说明
- ASIHTTPRequest类库简介和使用说明
- ASIHTTPRequest类库简介和使用说明
- ASIHTTPRequest类库简介和使用说明
- ASIHTTPRequest类库简介和使用说明
- c++中STL库 简介 及 使用说明