Python自动化构建工具scons使用入门笔记
作者:junjie 发布时间:2023-09-21 19:58:16
标签:Python,自动化构建工具,scons
这段时间用到了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命令进行编译,效果如下:
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


猜你喜欢
- 最近在做图片相关的工作,面对各种格式的图片转换,在OpenCV跟Pillow之间来回切换。觉得有必要把这些东西记录下来,以备不时之需。首先介
- 本文实例讲述了Go语言对字符串进行MD5加密的方法。分享给大家供大家参考。具体实现方法如下:package mainimport (&nbs
- 以下的文章主要是对MySQL性能影响关系紧密的五大配置参数的介绍,我前几天在相关网站看见对MySQL性能影响关系紧密的五大配置参数的资料,觉
- FTP服务器FTP服务器是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。FTP是File Transfer Prot
- 前言最近有个软件专业等级考试,以下简称软考,为了更好的复习备考,我打算抓取www.rkpass.cn网上的软考试题。首先讲述一下我爬取软考试
- 1.实现的思路(1)首先使用一个处理画框的程序,将图片中的有车和无车的停车位给画出来,并且保存坐标(如果画错了,将鼠标移至要删除的框中,右击
- 项目场景:常见的表单填写中都会遇到,比如新增信息,修改信息等,如下图相信大家对上面的验证都非常熟悉了,不多哔哔 本篇文章主要 想写 验证规则
- 前言 可迭代对象就像密闭容器里的水,有货倒不出itertools是python内置的标准模块,提供了很多简洁又高效的专用功能,使用
- 怎么用javascript进行拖拽本文译自:http://www.webreference.com/programming/javascri
- 代码import osfrom PIL import Imageimport tkinterimport tkinter.filedialo
- argparse 是 python 的一个命令行解析包,可根据需要编写高可读性的程序。网上的许多教程较为冗长和散漫,没有达到精练好掌握的目的
- Python中的frame是什么栈帧(frame)栈帧表示程序运行时函数调用栈中的某一帧。想要获得某个函数相关的栈帧,则必须在调用这个函数且
- 今天没事回家写了个贴吧图片下载程序,工具用的是PyCharm,这个工具很实用,开始用的Eclipse,但是再使用类库或者其它方便并不实用,所
- 新建两张表:表1:student 截图如下:表2:course 截图如下:(此时这样建表只是为了演示连接SQL语句,
- 我就废话不多说了,还是直接看代码吧!from IPython.display import display,Latex,Math%matpl
- 升级pippip版本必须升级到20.0.4版本才能应用;方法一、在pycharm中对pip进行升级;方法二、通过命令进行升级python3.
- 本文实例讲述了php字符串截取函数mb_substr用法。分享给大家供大家参考,具体如下:string mb_substr ( string
- 在某些情况下,比如自动补全(auto complete)的输入框中,需要使用keyup事件来监听键盘的输入以迅速作出回应。关键在于keyup
- 前言extends关键字在TS编程中出现的频率挺高的,而且不同场景下代表的含义不一样,特此总结一下:表示继承/拓展的含义表示约束的含义表示分
- 本文实例讲述了Python处理命令行参数模块optpars用法。分享给大家供大家参考,具体如下:optpars是python中用来处理命令行