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 07 Python
python利用不到一百行代码实现一个小siri
Mar 02 Python
Python实现自动登录百度空间的方法
Jun 10 Python
matplotlib中legend位置调整解析
Dec 19 Python
python的turtle库使用详解
May 10 Python
使用python socket分发大文件的实现方法
Jul 08 Python
django解决订单并发问题【推荐】
Jul 31 Python
基于pytorch的保存和加载模型参数的方法
Aug 17 Python
Python基于requests库爬取网站信息
Mar 02 Python
python实现吃苹果小游戏
Mar 21 Python
Python pandas 列转行操作详解(类似hive中explode方法)
May 18 Python
Python绘制动态水球图过程详解
Jun 03 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 MVC模式在网站架构中的实现分析
2010/03/04 PHP
PHP获取文件夹大小函数用法实例
2015/07/01 PHP
php计算年龄精准到年月日
2015/11/17 PHP
PHP互换两个变量值的方法(不用第三变量)
2016/11/14 PHP
javaScript 关闭浏览器 (不弹出提示框)
2010/01/31 Javascript
jquery实现智能感知连接外网搜索
2013/05/21 Javascript
window.print打印指定div实例代码
2013/12/13 Javascript
js清空表单数据的两种方式(遍历+reset)
2014/07/18 Javascript
JavaScript对象之深度克隆介绍
2014/12/08 Javascript
js上传图片及预览功能实例分析
2015/04/24 Javascript
JavaScript实现文本框中默认显示背景图片在获得焦点后消失的方法
2015/07/01 Javascript
jQuery实现连续动画效果实例分析
2015/10/09 Javascript
js正则表达式验证邮件地址
2015/11/12 Javascript
JS运动相关知识点小结(附弹性运动示例)
2016/01/08 Javascript
jQuery实现查找链接文字替换属性的方法
2016/06/27 Javascript
AngularJS基础 ng-show 指令简单示例
2016/08/03 Javascript
AngularJS 作用域详解及示例代码
2016/08/17 Javascript
jQuery使用unlock.js插件实现滑动解锁
2017/04/04 jQuery
JavaScript实现跟随滚动缓冲运动广告框
2017/07/15 Javascript
bootstrap多层模态框滚动条消失的问题
2017/07/21 Javascript
使用JS模拟锚点跳转的实例
2018/02/01 Javascript
JS弹窗 JS弹出DIV并使整个页面背景变暗功能的实现代码
2018/04/21 Javascript
微信小程序实现弹出菜单功能
2018/06/12 Javascript
[19:54]夜魇凡尔赛茶话会 第一期02:看图识人
2021/03/11 DOTA
python基础教程之面向对象的一些概念
2014/08/29 Python
Python的Flask框架标配模板引擎Jinja2的使用教程
2016/07/12 Python
浅谈django orm 优化
2018/08/18 Python
Python用61行代码实现图片像素化的示例代码
2018/12/10 Python
python搜索包的路径的实现方法
2019/07/19 Python
Pytorch技巧:DataLoader的collate_fn参数使用详解
2020/01/08 Python
Python基于Dlib的人脸识别系统的实现
2020/02/26 Python
解决pip install psycopg2出错问题
2020/07/09 Python
英文自荐信
2013/12/15 职场文书
群众路线专项整治方案
2014/10/27 职场文书
2015年七年级班主任工作总结
2015/05/21 职场文书
基于Redis zSet实现滑动窗口对短信进行防刷限流的问题
2022/02/12 Redis