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中操作字符串之replace()方法的使用
May 19 Python
在Django框架中编写Context处理器的方法
Jul 20 Python
Python函数中的函数(闭包)用法实例
Mar 15 Python
Python中functools模块的常用函数解析
Jun 30 Python
Python基于scapy实现修改IP发送请求的方法示例
Jul 08 Python
Python中类的初始化特殊方法
Dec 01 Python
python3将视频流保存为本地视频文件
Jun 20 Python
python添加菜单图文讲解
Jun 04 Python
在Python中过滤Windows文件名中的非法字符方法
Jun 10 Python
在python中logger setlevel没有生效的解决
Feb 21 Python
python+selenium+chrome批量文件下载并自动创建文件夹实例
Apr 27 Python
Python re.sub 反向引用的实现
Jul 07 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操作MongoDB GridFS 存储文件的详解
2013/06/20 PHP
PHP基于XMLWriter操作xml的方法分析
2017/07/17 PHP
PHP聊天室简单实现方法详解
2018/12/08 PHP
关于setInterval、setTimeout在jQuery中的使用注意事项
2011/09/28 Javascript
jquery右下角弹出提示框示例代码
2013/10/08 Javascript
javascript中局部变量和全局变量的区别详解
2015/02/27 Javascript
JavaScript获取网页支持表单字符集的方法
2015/04/02 Javascript
JS实现HTML标签转义及反转义
2020/04/14 Javascript
JS在浏览器中解析Base64编码图像
2017/02/09 Javascript
bootstrap table操作技巧分享
2017/02/15 Javascript
Angular排序实例详解
2017/06/28 Javascript
JavaScript生成图形验证码
2020/08/24 Javascript
详解vue前后台数据交互vue-resource文档
2017/07/19 Javascript
vue2组件之select2调用的示例代码
2017/10/12 Javascript
通过 JS 判断页面是否有滚动条的实现方法
2018/04/05 Javascript
浅谈layui里的上传控件问题
2019/09/26 Javascript
JavaScript图片旋转效果实现方法详解
2020/06/28 Javascript
[34:27]DOTA2上海特级锦标赛B组败者赛 VG VS Spirit第一局
2016/02/26 DOTA
[01:38]完美世界高校联赛决赛花絮
2018/12/02 DOTA
Windows下Python使用Pandas模块操作Excel文件的教程
2016/05/31 Python
浅析Python3爬虫登录模拟
2018/02/07 Python
Pytest框架之fixture的详细使用教程
2020/04/07 Python
Python捕获异常堆栈信息的几种方法(小结)
2020/05/18 Python
python环境搭建和pycharm的安装配置及汉化详细教程(零基础小白版)
2020/08/19 Python
python3 os进行嵌套操作的实例讲解
2020/11/19 Python
详解基于Facecognition+Opencv快速搭建人脸识别及跟踪应用
2021/01/21 Python
HTML5 history新特性pushState、replaceState及两者的区别
2015/12/26 HTML / CSS
Crocs美国官方网站:卡骆驰洞洞鞋
2017/08/04 全球购物
美国在线乐器和设备商店:Musician’s Friend
2018/07/06 全球购物
餐饮业经理竞聘演讲稿
2014/01/14 职场文书
农村结婚典礼司仪主持词
2014/03/14 职场文书
学校运动会报道稿
2014/09/23 职场文书
幼儿园教师个人工作总结2015
2015/05/12 职场文书
课题研究阶段性总结
2015/08/13 职场文书
Python中使用Lambda函数的5种用法
2021/04/01 Python
漫改真人电影「萌系男友是燃燃的橘色」公开先导视觉图
2022/03/21 日漫