python自动化构建工具_Python自动化构建工具scons使用入门笔记

这段时间用到了scons,这里总结下,也方便我以后查阅。

一、安装sconsLinux环境(以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

int main()

{

printf("Just a test!\n");

return 0;

}

1.1.2 编写SConstruct代码

内容如下:

复制代码 代码如下:

Program("test1.c")

1.1.3 编译程序

执行scons命令进行编译,效果如下:

1.2 多文件方式

1.2.1 编写程序代码

test1.h文件:

复制代码 代码如下:

#include

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自动化构建工具scons使用入门笔记

本文地址: http://www.cppcns.com/jiaoben/python/120598.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/373847.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 8状态更新

即将到来的Java SE 8发行版的两大新语言功能是Lambda Expressions和Modularity。 对于这两者,这些天的状态更新已经发布。 我会与您共享链接,因此您可能会在假期中通读它们 Oracle计划在2013年中期发布Java SE 8。 Lambda项目 Lambda项目以及JSR-335希望…

java 18 - 6 TreeMap嵌套使用

HashMap嵌套HashMap   动物     犬类         哈士奇   2         萨摩耶   1     猫类        波斯猫   2        加菲猫   3 先存储元素,然后遍历元素 1 package map_son;2 3 import java.util.HashMap;4 import…

程序设计语言

程序设计语言使用于书写计算机程序的语言。程序设计语言有3个方面的因素,即语法,语义和语用。语法标识程序的结构或形式。语义表示程序的含义。语用表示程序与使用者的关系。 程序设计语言的发展史 程序的复杂性度量 1,代码行度量法 出错率&a…

python集合类型是一种具体的数据类型_Python3基础语法之集合类型

set也是一种组合数据类型,支持成员关系操作(in)、对象大小计算操作符(len()),并且是iterable。集合数据类型至少提供一个set.isdisjoin()方法,支持比较,也支持为逻辑操作(在集合用于联合、交叉等上下文中使用)。只有可哈希运算的对…

Linux 安装之U盘引导

说到装系统最简单的方法无非就是找个系统安装光盘来然后就一步一步慢慢的安装。简单是简单但好似大多数人好像都木有Linux的安装光盘。因此只能用U盘来模拟光盘的功能来装系统咯。 电脑上装有Windows 7现要装Linux变双系统。 安装Linux前的准备: 1、电脑上分出空闲的…

OSGi:简介

为基于Java的系统创建的OSGi提供了模块化系统的框架。 OSGi使得可以定义每个单独模块与其他模块的依赖关系,并使用户可以控制生命周期并动态更改系统的每个组件。 OSGi是一个规范,最常见的实现可以算作Equinox , Apache Felix和Knoplerfish 。…

一起动手打造个人娱乐级linux

我们使用电脑,一直以来用的都是windows,但是对于像我这种爱折腾的人来说,尝试使用linux系统应该是一种不错的体验。说到linux,许多人可能都没听过,或者知道的人对它印象是这样的: 然而,linux发展…

PostgreSQL数据类型

http://blog.csdn.net/neo_liu0000/article/details/6254086 第六章 数据类型 6.1概述 PostgreSQL 提供了丰富的数据类型。用户可以使用 CREATE TYPE 命令在数据库中创建新的数据类型。PostgreSQL 的数据类型被分为四种,分别是基本数据类型、复合数据类型、域和伪类…

centos 卸载ffmpeg_CentOS Linux 操作系统安装 FFmpeg 教程

FFmpeg 是一个非常热门的开源项目,用来编解码音频视频流,被广泛用于各种流服务中。本教程在 CentOS 6、7、8 上面都可以使用,用来安装 FFmpeg 软件。一、安装前需求一个 sudo 账户,一般都是默认 root 账户即可。1、CentOS 8安装所…

Linux 火狐浏览器安装Flash插件

Linux系统安装完毕后,发现火狐浏览器视频播放不了而且总是提示安装Flash。而按火狐浏览器上的提示Flash插件安装总是失败,木有办法只能手动安装Flash插件啦。 到Flash官网:http://get.adobe.com/cn/flashplayer/ 下载系统对应的Flash插件&…

按汇总分组/多维数据集

时不时地,您会遇到一个使您达到SQL限制的要求。 我们中的许多人可能会提早放弃并使用Java / [或您的语言]计算内容。 相反,使用SQL可能是如此简单快捷。 如果您使用的是高级数据库,例如DB2 , Oracle , SQL Server &…

TCPUDP

TCP(传输控制协议) 建立连接,形成传输数据的通道在连接中进行大数据传输(数据大小不受限制)通过三次握手完成连接,是可靠协议,安全送达(三次握手向服务器发送请求,响应请求回复,发送…

Windows和linux双系统——修改默认启动顺序

电脑上装了Windows 7和Ubantu双系统,由于Linux系统用的次数比较少并且还是默认的启动项对此很不能容忍,因此得修改Windows为默认的启动项。 由于电脑上的系统引导程序是GRUB,因此修改当然也就落到Linux系统上啦。 修改/boot/grub/grub.cfg该文…

ft232h引脚_usb转串口芯片 ft232的奇怪现象

硬件平台:stm32f407ft232RL按照手册上的电路,我用USB接口给ft232RL供电,如下图:0288f358ccd0026690b2443b41d98f0f_224.png (0 Bytes, 下载次数: 12)2010-12-14 22:54 上传我在这个电路的基础上我用单片机串口和芯片对应的TX和RX相…

微软Team Foundation Service 的Scrum模板中的Feature和Backlog Items 的区别【转载】

Features help us plan work better in Team Foundation Service Scrum process 【原文:http://www.nsilverbullet.net/2013/06/04/features-help-us-plan-work-better-in-team-foundation-service-scrum-process/】 Recently a new work item type named “Featur…

LeWeb – 2011 –综述

在我去机场前几个小时,我将写最后一篇与LeWeb相关的文章。 这次,我将专注于会议本身。 参加过几次开发人员会议(虽然不多,但足以给您带来一定的经验),我已经开发了自己的自定义会议等级框架。 我使用以下6条…

Java 入门基础——面向对象的特征

计算机软件系统是现实生活中的业务在计算机中的映射,而现实生活中的业务其实就是一个个对象协作的过程。面向对象编程就是按现实业务一样的方式将程序代码按一个个对象进行组织和编写,让计算机系统能够识别和理解用对象方式组织和编写的程序代码&#xf…

(总结)密码破解之王:Ophcrack彩虹表(Rainbow Tables)原理详解(附:120G彩虹表下载)...

http://www.ha97.com/4009.html转载于:https://www.cnblogs.com/chaizp/p/5111188.html

python游走代码_介绍一个全局最优化的方法:随机游走算法(Random Walk)

1. 关于全局最优化求解全局最优化是一个非常复杂的问题,目前还没有一个通用的办法可以对任意复杂函数求解全局最优值。上一篇文章讲解了一个求解局部极小值的方法——梯度下降法。这种方法对于求解精度不高的情况是实用的,可以用局部极小值近似替代全局最…

iOS单元测试

iOS单元测试异步测试需要建立预期,因为苹果的单元测试都是同步的,测试到异步的时候建立一个预期,预期如果在规定时间(自定义)完成,代表单元测试通过。 还有 猴子测试 ,就是去github上找到猴子测…