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中使用HTMLParser解析html实例
Feb 08 Python
用Python实现一个简单的能够发送带附件的邮件程序的教程
Apr 08 Python
python实现的系统实用log类实例
Jun 30 Python
Python基于PycURL实现POST的方法
Jul 25 Python
django数据库migrate失败的解决方法解析
Feb 08 Python
Python结合ImageMagick实现多张图片合并为一个pdf文件的方法
Apr 24 Python
python 列表,数组和矩阵sum的用法及区别介绍
Jun 28 Python
Python编写通讯录通过数据库存储实现模糊查询功能
Jul 18 Python
Python小程序 控制鼠标循环点击代码实例
Oct 08 Python
python实现快递价格查询系统
Mar 03 Python
MxNet预训练模型到Pytorch模型的转换方式
May 25 Python
python3实现名片管理系统(控制台版)
Nov 29 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
PHP新手上路(十)
2006/10/09 PHP
强制PHP命令行脚本单进程运行的方法
2014/04/15 PHP
PHP获取某个月最大天数(最后一天)的方法
2015/07/29 PHP
Laravel (Lumen) 解决JWT-Auth刷新token的问题
2019/10/24 PHP
js+html+css实现鼠标移动div实例
2013/01/30 Javascript
js替换字符串的所有示例代码
2013/07/23 Javascript
js触发onchange事件的方法说明
2014/03/08 Javascript
jQuery操作元素css样式的三种方法
2014/06/04 Javascript
node.js中的fs.truncateSync方法使用说明
2014/12/15 Javascript
JavaScript DSL 流畅接口(使用链式调用)实例
2015/03/15 Javascript
jQuery基于ajax实现星星评论代码
2015/08/07 Javascript
JS 清除字符串数组中,重复元素的实现方法
2016/05/24 Javascript
基于jQuery实现的查看全文功能【实用】
2016/12/11 Javascript
JavaScript设计模式之单例模式详解
2017/06/09 Javascript
使用Vue.js和Flask来构建一个单页的App的示例
2018/03/21 Javascript
vue中子组件调用兄弟组件方法
2018/07/06 Javascript
修改vue源码实现动态路由缓存的方法
2020/01/21 Javascript
vue实现输入框自动跳转功能
2020/05/20 Javascript
javascript实现简单留言板案例
2021/02/09 Javascript
举例区分Python中的浅复制与深复制
2015/07/02 Python
Python运算符重载详解及实例代码
2017/03/07 Python
在centos7中分布式部署pyspider
2017/05/03 Python
Python内置函数delattr的具体用法
2017/11/23 Python
Python 反转字符串(reverse)的方法小结
2018/02/20 Python
将Dataframe数据转化为ndarry数据的方法
2018/06/28 Python
资生堂英国官网:Shiseido英国
2020/12/30 全球购物
什么是方法的重载
2013/06/24 面试题
新领导上任欢迎词
2014/01/13 职场文书
春节联欢晚会主持词
2014/03/24 职场文书
临时租车协议范本
2014/09/23 职场文书
2014年置业顾问工作总结
2014/11/17 职场文书
公司出纳岗位职责
2015/03/31 职场文书
储备店长岗位职责
2015/04/14 职场文书
大学生党课感想
2015/08/11 职场文书
大学生军训心得体会5篇
2019/08/15 职场文书
MySQL 数据类型详情
2021/11/11 MySQL