在 Linux 中使用 RT-Thread Env 工具的简明指南
Env 是 RT-Thread 对源码进行配置和裁剪、生成工程的工具,然而文档中的配置过程主要针对 Windows 系统,并没有对 Linux 系统的配置进行详细的介绍,这里简要介绍其在 Linux 下的配置与使用方法。
下载
Env 工具本质上是一组 Python 脚本,它的 Windows 版本中包含运行脚本的全套的工具和环境,而 Linux 版则只包含脚本本身,在使用 Env 工具前,我们需要先自行安装相关的工具。
若您使用的是 Ubuntu 系统,可参考官方仓库中的配置流程使用脚本进行配置,若您使用的是其他发行版,则根据自己的需要安装工具。
想要正常运行 Env 工具和编译工程,您至少需要在系统中安装 python3
, scons
, gcc
, git
, ncurses
,以及编译您的目标平台的 bsp 所需的交叉编译工具链。请使用包管理器或其他方法自行安装这些软件。
安装完毕这些软件后,前往您想编译的目标平台所对应的 bsp 目录(这里我使用的 bsp 是 rt-thread/bsp/qemu-virt64-riscv), 运行 scons --menuconfig
, 则会自动的下载 Env 工具,并进入 RT-Thread 的配置界面,这里我们可以暂时不进行配置,退出即可。
运行完毕后,Env 工具会被安装在当前用户的 ~/.env
目录中。
使用
Env 工具在下载时,会在~/.env
目录下生成 env.sh
文件。若您使用 bash
或者其他支持 bash
语法的 shell(如 zsh
),则您可通过运行 source ~/.env/env.sh
来引入 Env 的环境变量。若您使用 fish
,则 Env 在安装过程中还会生成一个 env.fish
文件。由于 fish
并不支持 ‘bash’ 设置环境变量的语法,当使用 fish
时,需要运行 source ~/.env/env.fish
引入环境变量。
在 Env 中,我们可直接运行的命令的只有 menuconfig
与 pkgs
,它们都是对 env.py
的调用。menuconfig
命令可打开 RT-Thread 配置页面,效果与直接运行 scons --menuconfig
相同。pkgs
命令可用于管理在线包,使用方法参见其他教程,不再赘述。
编译工程
在 bsp 目标平台目录下,运行 menuconfig
,进行我们需要的配置,配置完毕后选择 <Save>
保存为 .config
文件。最后即可使用 scons
编译工程。
直接运行 scons
时,可能会产生找不到编译器、编译失败等错误。可以使用环境变量和 scons
的参数指定编译器的路径和前缀,下面将演示使用环境变量和使用参数指定编译器的方式。(也可选择将环境变量直接添加在安装时生成的 env.sh
或 env.fish
中,这样添加后可以直接运行 scons
而不产生报错。)类似于 make
, scons
也能使用 -j线程数
的参数开启多线程编译,加快编译速度。scons
的更多参数,可在 rt-thread/tools/options.py
文件中查看。
编译得到目标文件后,即可烧录到目标平台中。