完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1 构建工具(系统)
1.1 什么是构建工具(系统) 构建工具 (software construction tool) 是一种软件,它可以根据一定的规则或指令,将源代码编译成可执行的二进制程序。这是构建工具最基本也是最重要的功能。实际上构建工具的功能不止于此,通常这些规则有一定的语法,并组织成文件。这些文件用来控制构建工具的行为,在完成软件构建之外,也可以做其他事情。 目前最流行的构建工具是 GNU Make。很多知名开源软件,如 Linux 内核就采用 Make 构建。Make 通过读取 Makefile 文件来检测文件的组织结构和依赖关系,并完成 Makefile 中所指定的命令。 由于历史原因,Makefile 的语法比较混乱,不利于初学者学习。此外在 Windows 平台上使用 Make 也不方便,需要安装 Cygwin 环境。为了克服 Make 的种种缺点,人们开发了其他构建工具,如 CMake 和 SCons 等。 1.2 RT-Thread 构建工具 RT-Thread 早期使用 Make/Makefile 构建。从 RT-Thread 0.3.0 开始,RT-Thread 开发团队逐渐引入了 SCons 构建系统,引入 SCons 唯一的目是:使大家从复杂的 Makefile 配置、IDE 配置中脱离出来,把精力集中在 RT-Thread 功能开发上。 有些读者可能会有些疑惑,这里介绍的构建工具与 IDE 有什么不同呢?IDE 通过图形化界面的操作来完成构建。大部分 IDE 会根据用户所添加的源码生成类似 Makefile 或 SConscript 的脚本文件,在底层调用类似 Make 或 SCons 的工具来构建源码。 2 SCons 简介 SCons 是一套由 Python 语言编写的开源构建系统,类似于 GNU Make。它采用不同于通常 Makefile 文件的方式,而是使用 SConstruct 和 SConscript 文件来替代。这些文件也是 Python 脚本,能够使用标准的 Python 语法来编写。所以在 SConstruct、SConscript 文件中可以调用 Python 标准库进行各类复杂的处理,而不局限于 Makefile 设定的规则。 2.1 RT-Thread中Scons的脚本结构 SCons 使用 SConscript 和 SConstruct 文件来组织源码结构并进行构建,SConstruct是scons构建的主脚本,SConscript存放在源代码的子目录下,通常放在项目的子目录,以达到分层构建的目的。一个项目 (BSP) 只有一 SConstruct,但是会有多个 SConscript。一般情况下,每个存放有源代码的子目录下都会放置一个 SConscript。 / -- rtconfig.py ---- 控制SCons构建的配置文件,存放了如工具链,构建参数等配置。 -- SConscript -- SConstruct ---- SCons的入口脚本,初始化了SCons构建rt-thread所需的必要环境 -- Kconfig ---- 顶层Kconfig文件,menuconfig的入口Kconfig文件 -- rt-thread/ --- src/ ---- SConscript ---- 各级源码的scons子脚本,控制当前级别下的源码构建行为 ---- Kconfig ---- 各级源码的Kconfig子脚本,存放当前级别下的配置项 ---- **.c 如上图所示,为了方便开发者使用SCons,RT-Thread搭建了如图所示的构建框架,其中包括了一份SCons的入口脚本(SConstruct),以及分散在各级源码的SCons子脚本(SConscript),还有一份便于配置构建行为的配置脚本(rtconfig.py)同时,RT-Thread也在SCons标准接口的基础上,提供了一组用于组织源码工程的扩展接口。开发者在使用时,可以借助RT-Thread提供的扩展接口,更方便的完成源码的组织与配置。
RT-Thread中Scons的脚本结构.pdf
(609.74 KB, 下载次数: 11
)
原作者:文江博客 |
|
相关推荐
|
|
836 浏览 0 评论
6340 浏览 0 评论
如何使用python调起UDE STK5.2进行下载自动化下载呢?
2836 浏览 0 评论
开启全新AI时代 智能嵌入式系统快速发展——“第六届国产嵌入式操作系统技术与产业发展论坛”圆满结束
3101 浏览 0 评论
获奖公布!2024 RT-Thread全球巡回线下培训火热来袭!报名提问有奖!
33230 浏览 11 评论
73662 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 03:19 , Processed in 0.528474 second(s), Total 66, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号