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 24 Python
简单介绍利用TK在Python下进行GUI编程的教程
Apr 13 Python
Python如何import文件夹下的文件(实现方法)
Jan 24 Python
Python实现的随机森林算法与简单总结
Jan 30 Python
selenium在执行phantomjs的API并获取执行结果的方法
Dec 17 Python
python实现转圈打印矩阵
Mar 02 Python
浅谈Python3中strip()、lstrip()、rstrip()用法详解
Apr 29 Python
用Q-learning算法实现自动走迷宫机器人的方法示例
Jun 03 Python
浅谈cv2.imread()和keras.preprocessing中的image.load_img()区别
Jun 12 Python
Python实现Keras搭建神经网络训练分类模型教程
Jun 12 Python
Python爬虫自动化爬取b站实时弹幕实例方法
Jan 26 Python
Python语言规范之Pylint的详细用法
Jun 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
PHP5.3.1 不再支持ISAPI
2010/01/08 PHP
php使用多个进程同时控制文件读写示例
2014/02/28 PHP
cnblogs TagCloud基于jquery的实现代码
2010/06/11 Javascript
jquery实现页面百叶窗走马灯式翻滚显示效果的方法
2015/03/12 Javascript
jQuery基础知识点总结(DOM操作)
2016/06/01 Javascript
详解js中的apply与call的用法
2016/07/30 Javascript
利用jquery给指定的table动态添加一行、删除一行的方法
2016/10/12 Javascript
JS实现图片垂直居中显示小结
2016/12/13 Javascript
js仿京东轮播效果 选项卡套选项卡使用
2017/01/12 Javascript
详谈Angular 2+ 的表单(一)之模板驱动型表单
2017/04/25 Javascript
vue表单绑定实现多选框和下拉列表的实例
2017/08/12 Javascript
使用vue2实现购物车和地址选配功能
2018/03/29 Javascript
D3.js实现拓扑图的示例代码
2018/06/30 Javascript
通过js给网页加上水印背景实例
2019/06/17 Javascript
jquery实现的放大镜效果示例
2020/02/24 jQuery
python使用win32com库播放mp3文件的方法
2015/05/30 Python
Python利用operator模块实现对象的多级排序详解
2017/05/09 Python
Python插件virtualenv搭建虚拟环境
2017/11/20 Python
Python字符串拼接六种方法介绍
2017/12/18 Python
python list删除元素时要注意的坑点分享
2018/04/18 Python
Python设计模式之状态模式原理与用法详解
2019/01/15 Python
Cython编译python为so 代码加密示例
2019/12/23 Python
6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
2020/01/06 Python
Django+Celery实现动态配置定时任务的方法示例
2020/05/26 Python
巴西葡萄酒销售网站:Wine.com.br
2017/11/07 全球购物
比利时买床:Beter Bed
2017/12/06 全球购物
美国豪华时尚女性精品店:Kirna Zabête
2018/01/11 全球购物
欧洲最大的拼图游戏商店:JigsawPuzzle.co.uk
2018/07/04 全球购物
英国领先的酒杯和水晶玻璃器皿制造商:Dartington Crystal
2019/06/23 全球购物
《黄河颂》教学反思
2014/02/07 职场文书
小班开学寄语
2014/04/04 职场文书
英语故事演讲稿
2014/04/29 职场文书
幼儿园端午节活动方案
2014/08/25 职场文书
幼儿园教师岗位职责
2015/04/02 职场文书
SQL Server的存储过程与触发器以及系统函数和自定义函数
2022/04/10 SQL Server
讨论nginx location 顺序问题
2022/05/30 Servers