Python自动化构建工具scons使用入门笔记


Posted in Python onMarch 10, 2015

这段时间用到了scons,这里总结下,也方便我以后查阅。

一、安装scons
Linux环境(以CentOS为例)

1、yum安装

yum install scons
2、源码安装

下载scons:http://http://jaist.dl.sourceforge.net/project/scons/scons/2.3.0/scons-2.3.0.zip

安装scons:python setup.py install

二、scons常用命令

scons -c : 可以清除生成的临时文件和目标文件,相当于执行make clean。

scons -Q : 将产生更少的输出信息。

三、scons使用示例

1、编译可执行文件

使用Program函数进行可执行文件的编译。

1.1 单文件方式

1.1.1 编写程序代码

建立文件test.c,内容如下:

#include <stdio.h>

int main()

{

    printf("Just a test!\n");

    return 0;

}

1.1.2 编写SConstruct代码

内容如下:

Program("test1.c")

1.1.3 编译程序

执行scons命令进行编译,效果如下:

Python自动化构建工具scons使用入门笔记

1.2 多文件方式

1.2.1 编写程序代码

test1.h文件:

#include <stdio.h>

void fun11();

test1.c文件:
#include "test1.h"

void fun11()

{

    printf("fun11\n");

}

test2.c文件:
#include "test1.h"

int main()

{

    fun11();

    return 0;

}

1.2.2 编写SConstruct代码

内容如下:

Program('test', ['test1.c','test2.c'])

或者:
Program('test',Glob('*.c'))

1.2.3 编译程序

执行scons命令进行编译。

1.3 依赖

1.3.1 链接库

语法示例如下:

Program('test', ['test1.cpp'],LIBS=['boost_system','boost_thread-mt'], LIBPATH='/usr/lib64')

1.3.2 包含库

语法示例如下:

Program('program',Glob('*.c'),CPPPATH='/home/admin/inc')

2、编译静态库

语法示例如下:

Library('libtest1',['test1.c'])

3、编译动态库

语法示例如下:

SharedLibrary('libtest1',['test1.c'])

三、其它

参考资料

(1) scons主页:http://www.scons.org/

(2) scons文档:http://www.scons.org/documentation.php

Python 相关文章推荐
python计数排序和基数排序算法实例
Apr 25 Python
python基于mysql实现的简单队列以及跨进程锁实例详解
Jul 07 Python
搞笑的程序猿:看看你是哪种Python程序员
Jun 12 Python
Python的Django框架中设置日期和字段可选的方法
Jul 17 Python
Python分治法定义与应用实例详解
Jul 28 Python
Windows下anaconda安装第三方包的方法小结(tensorflow、gensim为例)
Apr 05 Python
浅谈python requests 的put, post 请求参数的问题
Jan 02 Python
Python实现快速排序的方法详解
Oct 25 Python
Tensorflow的常用矩阵生成方式
Jan 04 Python
200行python代码实现贪吃蛇游戏
Apr 24 Python
Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作
Jun 06 Python
分享一个python的aes加密代码
Dec 22 Python
Python操作CouchDB数据库简单示例
Mar 10 #Python
Python性能优化技巧
Mar 09 #Python
Python中的赋值、浅拷贝、深拷贝介绍
Mar 09 #Python
Python自动连接ssh的方法
Mar 07 #Python
Python最长公共子串算法实例
Mar 07 #Python
Python复制目录结构脚本代码分享
Mar 06 #Python
python获取android设备的GPS信息脚本分享
Mar 06 #Python
You might like
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
2015/03/25 PHP
php实现的RSS生成类实例
2015/04/23 PHP
thinkphp隐藏index.php/home并允许访问其他模块的实现方法
2016/10/13 PHP
php实现姓名根据首字母排序的类与方法(实例代码)
2018/05/16 PHP
表格 隔行换色升级版
2009/11/07 Javascript
javascript 设计模式之单体模式 面向对象学习基础
2010/04/18 Javascript
js 中的switch表达式使用示例
2020/06/03 Javascript
js 限制input只能输入数字、字母和汉字等等
2013/12/18 Javascript
一个JavaScript处理textarea中的字符成每一行实例
2014/09/22 Javascript
浅谈JavaScript Math和Number对象
2015/01/26 Javascript
jQuery实现个性翻牌效果导航菜单的方法
2015/03/09 Javascript
jquery使用remove()方法删除指定class子元素
2015/03/26 Javascript
JavaScript正则表达式简单实用实例
2017/06/23 Javascript
详解angularJS+Ionic移动端图片上传的解决办法
2017/09/13 Javascript
nodejs中方法和模块用法示例
2018/12/24 NodeJs
vue element upload组件 file-list的动态绑定实现
2019/10/11 Javascript
微信小程序实现吸顶效果
2020/01/08 Javascript
基于element-ui封装可搜索的懒加载tree组件的实现
2020/05/22 Javascript
Vue微信公众号网页分享的示例代码
2020/05/28 Javascript
python读取和保存视频文件
2018/04/16 Python
python使用matplotlib画饼状图
2018/09/25 Python
Python numpy.array()生成相同元素数组的示例
2018/11/12 Python
详解Python3 pickle模块用法
2019/09/16 Python
Python合并2个字典成1个新字典的方法(9种)
2019/12/19 Python
python使用ctypes库调用DLL动态链接库
2020/10/22 Python
HTML5 Canvas+JS控制电脑或手机上的摄像头实例
2014/05/03 HTML / CSS
PHP如何防止SQL注入
2014/05/03 面试题
什么是数组名
2012/05/10 面试题
如何提高MySql的安全性
2014/06/19 面试题
计算机应用毕业生自荐信
2013/10/23 职场文书
销售简历自我评价
2014/01/24 职场文书
淘宝好评语句大全
2014/12/31 职场文书
穷人该怎么创业?谨记以下几点
2019/07/11 职场文书
教你用Python爬取英雄联盟皮肤原画
2021/06/13 Python
springboot+zookeeper实现分布式锁
2022/03/21 Java/Android
Python内置的数据类型及使用方法
2022/04/13 Python