Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
Env
【Env工具】:有问题的小伙伴来找我就对了
发布于 2018-01-02 16:43:35 浏览:60698
订阅该版
[tocm] **本帖将持续更新关于 env 工具使用相关的问题,如果在使用 env 的过程中出现了异常的情况,可以优先在本帖查找解决方法或者提出问题,将会获得第一时间的回复。** 小伙伴们也可多多提出建议,一同推进 env 工具的升级,方便大家的开发,env 工具的功能如下图所示: ![ENVtools.png](/uploads/201810/24/091414gdibi13la2dqsaiq.png) --- ---我是华丽的分割线------ ![5.gif](https://oss-club.rt-thread.org/uploads/20210909/3cf39872acbea4b42395db6d37c6df99.gif) ## 最新通知!!! env 的最新版本为 1.1.3 ,支持从国内镜像源升级软件包索引和功能脚本加快更新速度,并且在开启时自动更新。 ## 注意!!! 希望大家提问的时候能够尽可能地提供丰富的信息: 1、env 版本。 2、出问题时的 env 整个界面的截图。 3、提供 env 和 bsp 所在目录,并检查路径中是否有中文或者空格(重点)。 4、操作系统版本。 6、尝试使用管理员模式打开env。 这样能更快的定位问题解决问题,谢谢小伙伴们。 ## 一.env工具简介 **1.env工具是什么?** - env 是 RT-Thread 推出的辅助工具,用来配置基于 RT-Thread 操作系统开发的项目工程。 - env 工具提供了简单易用的配置剪裁工具,用来对内核和组件的功能进行配置,对组件进行自由裁剪,使系统以搭积木的方式进行构建。 - [RT-Thread env入门应用视频教程](https://mp.weixin.qq.com/s?__biz=MzIwMzA2NzI1Ng==&mid=2655155116&idx=1&sn=abe8ed7ddf7eca225b4e38e80b83a6c7&chksm=8d63c9bbba1440ad15d3205a4ab89359241394dbd7b76a5d584e70160b22aa997bafb9e97538&scene=0) **(强烈推荐观看!!!!!)** ## 2.为什么需要env工具? - 随着系统的复杂度提高,对项目进行配置变得越来越复杂,rt_config.h 里面的配置项也越来越多。使用env提供的 menuconfig 功能可以方便的配置项目,并且自动生成 rtconfig.h,无需手动修改。 - env 工具自带了 rt-thread 的开发环境,自带了 python 和 scons 工具,可以让我们方便的使用 scons 构建 MDK/IAR 工程,而不必要再安装 python/scons 工具。 - rt-thread 提供许多实用的软件包,为了方便的将这些软件到使用到自己的工程中,需要env平台来管理支持。 - 需要强调的一点是,第一次接触RT-Thread 的小伙伴不推荐直接使用 env 工具对项目进行配置,最好的入门方式是打开一个可以直接使用的 BSP,先将系统跑起来。近期在 RT-Thread 公众号上的[《15天入门RTT》](https://m.weike.fm/channel/185235)课程是你的首选学习资料。 ## 3.使用env工具能带来哪些方便? * menuconfig 图形化配置界面,交互性好,操作逻辑强; * 丰富的文字帮助说明,配置无需查阅文档; * 使用灵活,自动处理依赖,功能开关彻底; * 自动生成 rtconfig.h,无需手动修改; * 使用 scons 工具生成工程,提供编译环境,操作简单; * 提供多种软件包,模块化软件包耦合关联少,可维护性好; --可在 menuconfig 中查看软件包 * 软件包可在线下载,软件包持续集成,包可靠性高; ## 4.从哪里下载 env 工具? - 可以在官网的相关下载找到 env 工具的下载链接,推荐使用最新版本的env。[我是下载地址传送门](https://www.rt-thread.org/page/download.html) - **env 目前最新版本号:**env_released_1.1.3 - env 工具介绍和基本使用方法:[Env工具使用手册](https://www.rt-thread.org/document/site/docs/tools/env/env-user-manual/) - 软件包开发教程: [RT-Thread package 开发指南](https://www.rt-thread.org/document/site/docs/tools/env/package-development-guide/) ## 5.env现阶段的改进目标是什么? * 目前 env 工具正在完善中,还有一些不足的地方,目前的改进目标是让操作更加简化,完全图形化自然是最好了 :lol ## 二.使用中的常见问题 ### 1.注意事项** * 第一次使用 env 推荐去官网下载最新版本的 env 工具,新版本的env会有更好的兼容性,也支持自动更新的命令。 * 可以使用 env 内置命令 pkgs --upgrade 来更新软件包列表和 env 的功能代码,这样可以最大程度避免遇到已经修复的问题。 * env 所在路径不要有中文或者空格存在。 * bsp 工程所在的路径不要有中文或者空格存在。 ### 2.在env下能生成哪些类型的工程? * 目前在env下可以使用 scons 工具生成 mdk/iar 的工程,还没有支持 eclipse 工程的自动生成。 * 一般在使用 env 的开发,使用 gcc 的工具链,那么只需要一个 source insight 或者 vs code 之类的编辑器来看代码,使用 scons 编译即可。 ### 3.如何学习使用env呢? - 详细的 env 工具说明文档:[env工具使用手册](https://www.rt-thread.org/document/site/docs/tools/env/env-user-manual/),前面的章节可以用来入门env工具。 - 在 env 下使用 scons 和在 Windows 的 cmd 中使用是一样的,编译和生成工程的命令都相同,使用 scons --target=mdk/mdk4/mdk5/iar/cb -s 生成相应的工程并在工程中编译,或者直接使用 scons 命令使用 gcc 工具链编译 bsp。 ### 4.目前哪些 bsp 支持了 menuconfig 配置,从哪里开始学习使用呢? * 首先推荐使用最新版本3.0.0以上的的 rt-thread,最新版本的 rt-thread 可以在官网的 git hub上获得。 * 目前 rt-thread 里面的一些 bsp 支持了 menuconfig 配置,比如`rt-thread\bsp\stm32f429-apollo`,目前更多的 bsp 正在支持中。新入手可以查看这个 bsp 里面的配置,熟悉操作。 ### 5.自己制作的bsp如何能支持menuconfig呢?会有什么问题? * 1.如果是一个新的工程,你可以将kconfig文件拷贝到你自己的BSP中然后进行修改。因为是一个新的工程,所以选项重新开始配置也是可以的。 * 2.如果是一个已有的老的rt-thread工程,已经有一份rtconfig.h文件了,首先备份一下这个文件,然后使用scons --genconfig命令来生成.config文件,然后从3.0的bsp中拷贝一份kconfig文件到bsp中,这时候就可以使用menuconfig命令来配置工程了。menuconfig会读取你之前bsp的.config文件,等你配置过后,会生成一份新的.config文件,你再对比一下配置,这样就支持就完成了,具体的图文教程后面也会更新到env工具使用手册中。 ### 6.pkgs --upgrade命令和pkgs --update命令有什么区别? * pkgs --upgrade 命令是用来升级env功能脚本本身和软件包列表的。没有最新的包列表就不能选择最近更新的软件包。 * pkgs --update命令是用来更新软件包本身的,比如说你在menuconfig中选中了json和mqtt的软件包,但是退出menuconfig时并没有下载这些软件包。你需要使用pkgs --update命令,这时候env就会下载你选中的软件包并且加入到你的工程中去。 * 新版本的env支持`menuconfig -s/--setting`命令,如果你不想每次更换软件包后使用pkgs --update命令,在使用`menuconfig -s/--setting`命令后配置env选择每次使用menuconfig后自动更新软件包即可。 ### 7.如何添加env到右键菜单? (该功能已经加入到 0.7.0 以上版本作为基本功能,按env中文档提示操作即可) - doitbull提供的方法:[添加env到右键菜单方法传送门](https://www.rt-thread.org/qa/forum.php?mod=viewthread&tid=5752&extra=page%3D1) - armink提供了在任意路径下“右键”使用cmd_mini打开env的方法,解决了需要多次切换路径和console的使用不太人性化的问题,传送门:[任意路径下“右键”使用cmd_mini打开env](https://www.rt-thread.org/qa/thread-6850-1-2.html) - 以上方法经过测试,还是很好用的,简化了日常的操作。如果直接在bsp目录下通过右键点开cmd_mini,那么复制粘贴等操作也可以像在Windows下一样使用同样的方法了。 ### 8.env工具出现乱码怎么办? - 首先检查是否有中文路径 - 检查chcp命令是否加入了系统环境变量,尝试使用chcp 437命令将字符格式改为英文。如果提示没有chcp命令,则考虑是没有加入到环境变量中。 - chcp命令所在的目录可能在system32目录,添加到环境变量即可。 - [env工具乱码问题传送门](https://www.rt-thread.org/qa/forum.php?mod=viewthread&tid=5763&page=1) ### 9.使用menuconfig -s 命令提示找不到参数? - 由于env功能脚本的更新可能快于env版本的发布,所以如果使用命令 `menuconfig -s` 提示参数不正确或者提示功能还没有支持,可以参考 [env工具使用手册](https://github.com/RT-Thread/rtthread-manual-doc/blob/master/zh/5chapters/01-chapter_env_manual.md)的5.2章节使用 `pkgs --upgrade` 命令来更新env的功能脚本。 ### 10.运行python的时候提示`no module named site`怎么办? - 这里解决方法是:`计算机右键`–>>属性—>>高级系统设置—->>环境变量,在管理员的用户变量中,新建变量名为PYTHONHOME,变量值为:`F:\git_repositories\env\tools\Python27` (是env里面Python的安装路径),注意后面不要加`“;”`,否则会无效。 如果添加PYTHONHOME没好,再用同样的方法添加PYTHONPATH。就可以解决这个问题了。 - 有一篇博文详细的描述了这个问题:[传送门在这里](http://blog.csdn.net/nullzeng/article/details/45293333),如果想了解原理可以看一看。 ### 11.提示找不到 CMD 命令? * 这里解决方法是:计算机右键–>>属性—>>高级系统设置—->>环境变量,`C:\Windows\System32`; 加入系统环境变量即可。 ### 12.提示找不到 git 命令? - `'git' is not recognized as an internal or external command, operable program or batch file.` - 没安装 git,需要安装git 并加入环境变量,准备过程参见[《env工具使用手册》](https://www.rt-thread.org/document/site/rtthread-development-guide/rtthread-tool-manual/env/env-user-manual/)。 ### N.持续更新中。 * 欢迎小伙伴们继续提出问题。 ## 作者感言 - 2019.1.22 - 现在到了 env 工具的 1.1.0 版本了,根据大家使用大半年的反馈, 本次升级解决了大家使用时可能出现的大部分问题,也就是中文、空格等导致的程序异常。 - 现在 env 工具在常见错误的地方有中文提示了,相信大家通过给出的中文提示可以自己知道该怎么做,而不需要再去查资料或者来论坛提问了。 - 网络下载功能也进行了优化,网络不好的时候,env 工具会表现得更加稳定。 - 2018.6.6 - env 工具已经和大家见面有半年时间了,中间改了两次版,打了无数补丁,回想起 env 最初的模样,心里还是略有感慨,想要做一个好用的工具,需要不断地改进它,让它始终拥有活力。 - 现在 env 又要迎来一次重大的更新了,主要是软件包下载方面的改进,希望能继续提高 env 工具的用户体验。请大家期待哦。 - 感谢为 env 开发过程中一起付出努力的小伙伴们(相关内容转至内网 env 开发列表),谢谢大家。 - 2018.8.6 - 最新版本为 0.7.1 修复了一些兼容性的问题。env 只有在必须重新下载工具包的时候才会发布新的版本,一般的功能更新用户使用 pkgs --upgrade 命令来在线更新即可。 - 命令行操作总是有难度的,期待后面发布的图形界面版本会降低使用门槛吧。继续加油~ ## env 工具开发者介绍: - 我们还有许多热心的社区开发者,从 env 发布最初版本开始就对 env 进行测试和提出意见,还有众多网友对 env 使用过程的反馈都让这个工具变得更好,env 工具的发展离不开大家的贡献。他们是:**Cupid天空、成都-枪炮、良、水手、格物穷理、杀手、燕十三、(良)&&(木)、照化、moss、NikolaDi、doitbull、linhuikui、kylin、wangyi190228、msr06rr、aloiter、LynnZhang、whj467467222、Atom、陌生小饼干、yufangxi、geniusgogo** 等小伙伴。欢迎更多的小伙伴对 env 的使用提出你们的意见,env 工具会因为大家的反馈而变得越来越好,谢谢大家。
查看更多
595
个回答
默认排序
按发布时间排序
bernard
2018-02-10
这家伙很懒,什么也没写!
支持linux的,在linux下,bsp/xxx目录下以 `scons --menuconfig` 启动。它会更新一些env的脚本到~/.env目录下,同时会添加一些环境变量的脚本`~/.env/env.sh` 所以在linux下,当`~/.env`脚本有了后,可以 `source ~/.env/env.sh` 配置些环境变量,这样`pkgs --update`就可以使用了。
IdeaMing
2018-01-02
这家伙很懒,什么也没写!
第三问没回答完啊;P
我夏了夏天
认证专家
2018-01-02
Life isn't about finding yourself, life is about creating yourself.
>第三问没回答完啊 正在更新呢 ;P 本帖将持续更新在env使用中的各种问题,你问我答哦。
moss
2018-01-03
这家伙很懒,什么也没写!
关于如何生成eclipse工程,据说可以用env生成,怎么玩的?
我夏了夏天
认证专家
2018-01-03
Life isn't about finding yourself, life is about creating yourself.
>关于如何生成eclipse工程,据说可以用env生成,怎么玩的? 问题收集了哦,目前还没有支持eclipse的工程生成,一般使用gcc工具链来编译的话,只需要一个source insight 或者 vs code 之类的编辑器来看代码,使用scons编译即可。
NikolaDi
2018-01-09
这家伙很懒,什么也没写!
请问,自己做的bsp可以使用env工具嘛?会出现哪些问题嘛?
我夏了夏天
认证专家
2018-01-09
Life isn't about finding yourself, life is about creating yourself.
[i=s] 本帖最后由 Summer_gift 于 2018-1-9 10:58 编辑 [/i] >请问,自己做的bsp可以使用env工具嘛?会出现哪些问题嘛? --- 已经提交了更新,上面有env说明手册的传送门.6.1章节 给自己的bsp添加menuconfig功能 可以的,你先熟悉一下已经做好的BSP里面menuconfig的操作,知道menuconfig命令是以Kconfig文件中的选项为准,生成rtconfig.h文件,上一次的配置存放在.config文件中,首先了解这几个概念,然后就可以做自己Bsp的menuconfig支持了。有两种方法: 1.如果是一个新的工程,你可以将kconfig文件拷贝到你自己的BSP中然后进行修改。因为是一个新的工程,所以选项重新开始配置也是可以的。 2.如果是一个已有的老的rt-thread工程,已经有一份rtconfig.h文件了,首先备份一下这个文件,然后使用scons --genconfig命令来生成.config文件,然后从3.0的bsp中拷贝一份kconfig文件到bsp中,这时候就可以使用menuconfig命令来配置工程了。menuconfig会读取你之前bsp的.config文件,等你配置过后,会生成一份新的.config文件,你再对比一下配置,这样就支持就完成了。可以试试看,有问题再提出来。
doitbull
2018-01-17
这家伙很懒,什么也没写!
pkgs --upgrade 和 pkgs --update 什么区别???
我夏了夏天
认证专家
2018-01-18
Life isn't about finding yourself, life is about creating yourself.
>pkgs --upgrade 和 pkgs --update 什么区别??? --- pkgs --upgrade 命令是用来升级env功能脚本本身和软件包列表的。没有最新的包列表就不能选择最近更新的软件包。 pkgs --update命令是用来更新软件包本身的,比如说你在menuconfig中选中了json和mqtt的软件包,但是退出menuconfig时并没有下载这些软件包。你需要使用pkgs --update命令,这时候env就会下载你选中的软件包并且加入到你的工程中去。 新版本的env支持menuconfig -s/--setting 命令,如果你不想每次更换软件包后使用pkgs --update命令,在使用menuconfig -s/--setting 命令后配置env选择每次使用menuconfig后自动更新软件包即可。
doitbull
2018-01-18
这家伙很懒,什么也没写!
>pkgs --upgrade 命令是用来升级env功能脚本本身和软件包列表的。没有最新的包列表就不能选择最近更新的软 ... --- 回答满分
撰写答案
登录
注册新账号
关注者
4
被浏览
60.7k
关于作者
我夏了夏天
Life isn't about finding yourself, life is about creating yourself.
提问
34
回答
1319
被采纳
19
关注TA
发私信
相关问题
1
用scons构建代码出现问题
2
求助用scons生成不了mdk工程
3
关于使用scons编译的问题
4
关于scons 编译CPP问题求教
5
scons编译出现警告信息
6
SCons生成MDK5工程出错
7
realtouch的scons问题
8
SCons的PreAction能用吗?
9
scons 编译时出错。
10
求教:关于scons构建rtt时的两个问题
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
2
RT-Thread 发布 EtherKit开源以太网硬件!
3
rt-thread使用cherryusb实现虚拟串口
4
《C++20 图形界面程序:速度与渲染效率的双重优化秘籍》
5
《原子操作:程序世界里的“最小魔法单位”解析》
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
at_device
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
13
个答案
2
次被采纳
张世争
9
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
本月文章贡献
程序员阿伟
7
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
3
次点赞
ThinkCode
1
篇文章
1
次点赞
Betrayer
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部