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计算已经过去多少个周末的方法
Jul 25 Python
实例解析Python的Twisted框架中Deferred对象的用法
May 25 Python
python爬虫正则表达式之处理换行符
Jun 08 Python
对Python3.6 IDLE常用快捷键介绍
Jul 16 Python
pygame游戏之旅 添加游戏界面按键图形
Nov 20 Python
Python3安装psycopy2以及遇到问题解决方法
Jul 03 Python
python实现微信小程序用户登录、模板推送
Aug 28 Python
Python lambda表达式filter、map、reduce函数用法解析
Sep 11 Python
Python 3.6 中使用pdfminer解析pdf文件的实现
Sep 25 Python
重构Python代码的六个实例
Nov 25 Python
python脚本使用阿里云slb对恶意攻击进行封堵的实现
Feb 04 Python
python第三方网页解析器 lxml 扩展库与 xpath 的使用方法
Apr 06 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
星际玩家的三大定律
2020/03/04 星际争霸
php实现的简单压缩英文字符串的代码
2008/04/24 PHP
php缩放图片(根据宽高的等比例缩放)实例介绍
2013/06/09 PHP
php自定义apk安装包实例
2014/10/20 PHP
JavaScript 对象、函数和继承
2009/07/07 Javascript
JavaScript使用过程中需要注意的地方和一些基本语法
2010/08/26 Javascript
jQuery前端框架easyui使用Dialog时bug处理
2014/12/05 Javascript
jquery实现动静态条形统计图
2015/08/17 Javascript
jQuery表格行上移下移和置顶的实现方法
2015/10/08 Javascript
简单实现jquery隔行变色
2017/11/09 jQuery
layui表格checkbox选择全选样式及功能的实例
2018/03/07 Javascript
vue初始化动画加载的实例
2018/09/01 Javascript
jquery实现联想词搜索框和搜索结果分页的示例
2018/10/10 jQuery
微信小程序时间控件picker view使用详解
2018/12/28 Javascript
Vue2.0+Vux搭建一个完整的移动webApp项目的示例
2019/03/19 Javascript
[01:05:32]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第一局
2016/03/04 DOTA
python线程池的实现实例
2013/11/18 Python
Python文件操作基本流程代码实例
2017/12/11 Python
python3.5安装python3-tk详解
2019/04/26 Python
Python实现爬取亚马逊数据并打印出Excel文件操作示例
2019/05/16 Python
Python单元测试与测试用例简析
2019/11/09 Python
使用Keras预训练模型ResNet50进行图像分类方式
2020/05/23 Python
Pyqt助手安装PyQt5帮助文档过程图解
2020/11/20 Python
canvas进阶之贝塞尔公式推导与物体跟随复杂曲线的轨迹运动
2018/01/10 HTML / CSS
俄罗斯第一家篮球店:StreetBall
2020/07/30 全球购物
如何打开WebSphere远程debug
2014/10/10 面试题
C#公司笔试题
2014/03/28 面试题
与UNIX有关的几个名词
2015/09/17 面试题
关于打架的检讨书
2014/01/17 职场文书
竞选部门副经理的自荐书范文
2014/02/11 职场文书
反邪教教育心得体会
2016/01/15 职场文书
anaconda python3.8安装后降级
2021/06/11 Python
MySQL中的引号和反引号的区别与用法详解
2021/10/24 MySQL
Html5获取用户当前位置的几种方式
2022/01/18 HTML / CSS
Elasticsearch 数据类型及管理
2022/04/19 Python
apache ftpserver搭建ftp服务器
2022/05/20 Servers