1213_SCons初步了解以及安装试用

本文介绍了SCons这一软件构建工具,它作为Makefile的替代品,使用Python脚本进行构建。作者分享了SCons的安装过程,通过一个简单的C语言项目展示了SCons的使用,包括创建`sconstruct.py`配置文件和编写C源代码。尽管过程中出现警告,但成功实现了编译目标。文章还提及SCons与Make、autotools和cmake的关系,以及其MIT许可证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1213_SCons初步了解以及安装试用装试用

全部学习汇总:https://github.com/GreyZhang/g_SCons

前阵子学习中的Makefile中断了,最近计划捡回来。不过,这段时间刚好在网上看到了几种可以实现软件构建的自动化工具,趁着这个机会了解一下。说不准,后续这样工具的掌握就可以直接替代掉Makefile这种古老的技术了。这次我看到的一个工具叫做SCons,支持多种编程语言,而我关注的C语言也在其中。

首先看看什么事SCons,从介绍看这个很可能是软件构建工具单词的缩写。不同于autotools或者cmake,他们是提供Makefile的构建,SCons看起来是直接跳过了这样的过程,直接提供了一个make的替代方案。从这个描述看,SCons还是有自己的独到之处的。以往的各种工具其实是在想方设法构建Makefile,如果深入理解还是躲不开Makefile的知识。而SCons把这个换成了python,自然,这种脚本语言在掌握上应该会更容易一些。

接下来,找一下软件包并且尝试安装。从官方的网站介绍找到了链接:SCons - Browse /scons at SourceForge.net

这里面有多个版本,最新的是4.3.0,但是看到网络上的说明稳定版本是4.2.0,因此我自己接下来的尝试的版本会是4.2.0。有一点需要注意,SCons对于Python的版本是有要求的,安装不同的版本可能也会有不同的要求。安装之间需要确保python的版本安装正确,这个是另一个话题但是比较简单,这里不再专门介绍。

安装非常简单,解压压缩包之后执行python setup.py install。

检测安装是否成功,可以执行scons -v,查看提示。

从这里可以看到,版本号已经识别成功。

这个软件是在MIT的lic下的,之前对这个license了解不多。前面看FreeRTOS的时候,了解过这个MIT license的介绍。简单一句就是:比自由更加自由。

这里介绍了一下SCons跟Make之间的关系,从这里看得出最初看到的介绍以及我自己理解的那样。SCons其实并不是autotools或者make的同类品或者竞争者,而是Make方案的一个替代品。

接下来,尝试做一个最简单的尝试,做一个我认为的hello world形式的操作出来。具体的工程中只有一个文件,test.c,然后生成一个my_scons的可执行文件。程序实现一个字符串的打印。

  1. 首先创建sconstruct.py配置文件,具体的配置信息如下:

2. 接下来,实现一个简单的C文件编写,具体内容如下:

3. 命令行中切换到当前目录,然后执行scons .。这里需要注意,执行的时候必须要有管理员权限,否则的话临时的目录会创建不成功。可能这个后续还有改进的方式,暂时的hello world尝试我采用了切换管理员权限来达成目标。

虽然中间有部分警告,但是基础的功能看得出来是已经实现了。这自然会有很多改进点存在,临时至少是可以用这个验证一下可行性。

另外一点,可以从生成的文件中看到,中间涉及到的目标文件也是创建出来了的。

接下来附加一下涉及到的代码或者配置:

  1. 配置文件如下:

import os

env = Environment(ENV={'PATH': os.environ['PATH']})

env["CC"] = "gcc"

env.Program(target='my_scons', source=['test.c'])

  1. 代码文件如下:

#include "stdio.h"

int main(void)

{

printf("test for scons.\n");

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值