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读取图片属性信息的实现方法
Sep 11 Python
Python实现树的先序、中序、后序排序算法示例
Jun 23 Python
python Crypto模块的安装与使用方法
Dec 21 Python
Python遍历某目录下的所有文件夹与文件路径
Mar 15 Python
浅谈Python Opencv中gamma变换的使用详解
Apr 02 Python
TensorFlow实现iris数据集线性回归
Sep 07 Python
Python实现iOS自动化打包详解步骤
Oct 03 Python
python样条插值的实现代码
Dec 17 Python
numpy.linspace函数具体使用详解
May 27 Python
python接口调用已训练好的caffe模型测试分类方法
Aug 26 Python
Python Pivot table透视表使用方法解析
Sep 11 Python
python用tkinter开发的扫雷游戏
Jun 01 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
我的论坛源代码(六)
2006/10/09 PHP
PHP 截取字符串 分别适合GB2312和UTF8编码情况
2009/02/12 PHP
数据库查询记录php 多行多列显示
2009/08/15 PHP
php打开文件fopen函数的使用说明
2013/07/05 PHP
PHP随机生成信用卡卡号的方法
2015/03/23 PHP
PHP简单实现断点续传下载的方法
2015/09/25 PHP
PHP高精确度运算BC函数库实例详解
2017/08/15 PHP
JS拖动技术 关于setCapture使用
2010/12/09 Javascript
javascript getElementsByTagName
2011/01/31 Javascript
javascript 进阶篇3 Ajax 、JSON、 Prototype介绍
2012/03/14 Javascript
jQuery 选择器项目实例分析及实现代码
2012/12/28 Javascript
js中一维数组和二位数组中的几个问题示例说明
2014/07/17 Javascript
JavaScript获取图片真实大小代码实例
2014/09/24 Javascript
Javascript基础教程之if条件语句
2015/01/18 Javascript
CSS或者JS实现鼠标悬停显示另一元素
2016/01/22 Javascript
js+canvas绘制五角星的方法
2016/01/28 Javascript
详解使用Vue.Js结合Jquery Ajax加载数据的两种方式
2017/01/10 Javascript
详解nodejs微信公众号开发——2.自动回复
2017/04/10 NodeJs
基于BootStrap multiselect.js实现的下拉框联动效果
2017/07/28 Javascript
jQuery实现仿京东防抖动菜单效果示例
2018/07/06 jQuery
浅析java线程中断的办法
2018/07/29 Javascript
[02:16]DOTA2英雄基础教程 干扰者
2014/01/15 DOTA
[54:58]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第一场 11.25
2020/11/25 DOTA
python网络编程学习笔记(六):Web客户端访问
2014/06/09 Python
matplotlib简介,安装和简单实例代码
2017/12/26 Python
python读取tif图片时保留其16bit的编码格式实例
2020/01/13 Python
美国高端寝具品牌:Coyuchi
2017/02/08 全球购物
Net-A-Porter美国官网:全球时尚奢侈品名站
2017/02/11 全球购物
大学生毕业自我评价范文分享
2013/11/11 职场文书
工程部主管岗位职责
2013/11/17 职场文书
村党支部换届选举方案
2014/05/02 职场文书
个人工作主要事迹
2014/05/08 职场文书
2015年六一儿童节活动方案
2015/05/05 职场文书
入党转正申请报告
2015/05/15 职场文书
Python的代理类实现,控制访问和修改属性的权限你都了解吗
2022/03/21 Python
Spring boot实现上传文件到本地服务器
2022/08/14 Java/Android