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 自动安装 Rising 杀毒软件
Apr 24 Python
详解python如何调用C/C++底层库与互相传值
Aug 10 Python
python安装oracle扩展及数据库连接方法
Feb 21 Python
python实现解数独程序代码
Apr 12 Python
Python实现获取磁盘剩余空间的2种方法
Jun 07 Python
OpenCV2.3.1+Python2.7.3+Numpy等的配置解析
Jan 05 Python
使用python 打开文件并做匹配处理的实例
Jan 02 Python
Python使用sklearn库实现的各种分类算法简单应用小结
Jul 04 Python
pandas中遍历dataframe的每一个元素的实现
Oct 23 Python
python3通过udp实现组播数据的发送和接收操作
May 05 Python
python属于解释型语言么
Jun 15 Python
python实现学生管理系统开发
Jul 24 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
抓取YAHOO股票报价的类
2009/05/15 PHP
PHP为表单获取的URL 地址预设 http 字符串函数代码
2010/05/26 PHP
linux下删除7天前日志的代码(php+shell)
2011/01/02 PHP
调整PHP的性能
2013/10/30 PHP
laravel 实现划分admin和home 模块分组
2019/10/15 PHP
为javascript添加String.Format方法
2020/08/11 Javascript
js关闭父窗口时关闭子窗口
2013/04/01 Javascript
javascript继承的六大模式小结
2015/04/13 Javascript
jquery分析文本里url或邮件地址为真实链接的方法
2015/06/20 Javascript
js document.getElementsByClassName的使用介绍与自定义函数
2016/11/25 Javascript
jQuery基于正则表达式的表单验证功能示例
2017/01/21 Javascript
AngularJs导出数据到Excel的示例代码
2017/08/11 Javascript
JavaScript设计模式之原型模式分析【ES5与ES6】
2018/07/26 Javascript
jQuery实现的简单拖拽功能示例【测试可用】
2018/08/14 jQuery
js隐式转换的知识实例讲解
2018/09/28 Javascript
Vue.extend实现挂载到实例上的方法
2019/05/01 Javascript
JavaScript实现美化滑块效果
2019/05/17 Javascript
vue cli3.0 引入eslint 结合vscode使用
2019/05/27 Javascript
小程序接入腾讯位置服务的详细流程
2020/03/03 Javascript
Python协程的用法和例子详解
2017/09/09 Python
Python实现App自动签到领取积分功能
2018/09/29 Python
小白入门篇使用Python搭建点击率预估模型
2018/10/12 Python
Python利用PyExecJS库执行JS函数的案例分析
2019/12/18 Python
PyTorch如何搭建一个简单的网络
2020/08/24 Python
利用 CSS3 实现的无缝轮播功能代码
2017/09/25 HTML / CSS
html+css3实现的登录界面
2020/12/09 HTML / CSS
英国皇室御用百货:福南梅森(Fortnum & Mason)
2017/12/03 全球购物
英国最大的LED专业零售商:Led Hut
2018/03/16 全球购物
英国一家集合了众多有才华设计师品牌的奢侈店:Wolf & Badger
2018/04/18 全球购物
ZWILLING双立人法国网上商店:德国刀具锅具厨具品牌
2019/08/28 全球购物
就业推荐表自我鉴定
2013/10/29 职场文书
2015年乡镇食品安全工作总结
2015/10/22 职场文书
nginx作grpc的反向代理踩坑总结
2021/07/07 Servers
浅谈Redis跟MySQL的双写问题解决方案
2022/02/24 Redis
MySql数据库 查询时间序列间隔
2022/05/11 MySQL