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之有容乃大的list(1)
Sep 14 Python
利用Python绘制MySQL数据图实现数据可视化
Mar 30 Python
在Python的Flask框架中验证注册用户的Email的方法
Sep 02 Python
利用Python爬取微博数据生成词云图片实例代码
Aug 31 Python
python实现kNN算法
Dec 20 Python
Php多进程实现代码
May 07 Python
Python matplotlib的使用并自定义colormap的方法
Dec 13 Python
搞定这套Python爬虫面试题(面试会so easy)
Apr 03 Python
python tkinter canvas 显示图片的示例
Jun 13 Python
ORM Django 终端打印 SQL 语句实现解析
Aug 09 Python
Python 解析xml文件的示例
Sep 29 Python
使用PyCharm官方中文语言包汉化PyCharm
Nov 18 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/12/06 PHP
PHP laravel中的多对多关系实例详解
2017/06/07 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
php中的依赖注入实例详解
2019/08/14 PHP
Javascript学习笔记-详解in运算符
2011/09/13 Javascript
JS在textarea光标处插入文本的小例子
2013/03/22 Javascript
前端轻量级MVC框架CanJS详解
2014/09/26 Javascript
jquery插件jquery.nicescroll实现图片无滚动条左右拖拽的方法
2015/08/10 Javascript
jQuery带进度条全屏图片轮播特效代码分享
2020/06/28 Javascript
angularJS 指令封装回到顶部示例详解
2017/01/22 Javascript
Vue.js 动态为img的src赋值方法
2018/03/14 Javascript
jQuery实现的点击图片居中放大缩小功能示例
2019/01/16 jQuery
详解keep-alive + vuex 让缓存的页面灵活起来
2019/04/19 Javascript
微信小程序自定义联系人弹窗
2020/05/26 Javascript
Vue axios 跨域请求无法带上cookie的解决
2020/09/08 Javascript
[04:15]DOTA2-DPC中国联赛1月19日Recap集锦
2021/03/11 DOTA
Python定时执行之Timer用法示例
2015/05/27 Python
Python编程实现的简单Web服务器示例
2017/06/22 Python
spark: RDD与DataFrame之间的相互转换方法
2018/06/07 Python
python-pyinstaller、打包后获取路径的实例
2019/06/10 Python
Python的Tkinter点击按钮触发事件的例子
2019/07/19 Python
Python使用Pandas读写Excel实例解析
2019/11/19 Python
PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译
2020/04/15 Python
Python学习之路安装pycharm的教程详解
2020/06/17 Python
详解PyQt5中textBrowser显示print语句输出的简单方法
2020/08/07 Python
python将下载到本地m3u8视频合成MP4的代码详解
2020/11/24 Python
html5如何及时更新缓存文件(js、css或图片)
2013/06/24 HTML / CSS
美国时尚女装在线:Missguided
2016/12/03 全球购物
英国运动风奢侈品购物网站:Maison De Fashion
2020/08/28 全球购物
电厂职工自我鉴定
2014/02/20 职场文书
软件售后服务承诺书
2014/05/21 职场文书
教师一帮一活动总结
2014/07/08 职场文书
高校师德师风自我剖析材料
2014/09/29 职场文书
大学生党员批评与自我批评范文
2014/10/14 职场文书
导游词之阳朔遇龙河
2019/12/16 职场文书
TaiShan 200服务器安装Ubuntu 18.04的图文教程
2022/06/28 Servers