在项目中难得一次就可以将需要的模块或组件包添加完成,因此在实际开发中经常会遇到在未完成的项目中增加软件包或使能硬件功能的情况。一般我们会使用RT-Thread的ENV辅助开发环境的menuconfig图形化系统配置工具对组件包进行配置,配置完后使用pkgs --update命令添加、更新或删除软件包(需要注意的是:pkgs --update会使用高git clone的功能,因此需要先安装git工具,否则会提示更新或下载软件包失败)。
- 添加(下载):软件包被选中,但未下载,使用pkgs --update命令会下载该软件包并添加到工程中
- 更新:项目中已使用的软件包在服务器有更新,并且该软件包选择的版本号时latest,使用pkgs --update命令会将项目中的软件包更新为最新的版本
- 删除:之前在项目中添加的软件包不再使用时(在menuconfig中已经取消选中状态),使用pkgs --update可将该软件包从工程中移除
但是在使用pkgs --update更新完工程,再使用scons --target=mdk5生成新的工程后会发现虽然新增加的配置选项的源码被添加进来了,但是自己之前在MKD KEIL5中的添加的文件会被清除掉,又需要自己重新将该文件添加到工程中,非常麻烦!
如上图所示,创建了一个dac8563.c的文件并在KEIL中将其添加到了Applications分组中,在使用在使用pkgs --update更新完工程,再使用scons --target=mdk5会将dac8563.c从Application分组中清除掉,清除后的效果如下:
之所以重新生成的工程分组中会清除掉用户添加的文件,是因为dac8563.c所在的applications文件夹中的SConscript配置文件未将dac8563.c添加进去
在SConscript文件中将需要添加到分组中的文件名称添加进来,添加后的效果如下所示:
添加后保存SConscript文件,重新使用EVN工具scons --target=mdk5生成工程,发现dac8563.c文件已经被添加到Applications分组中
SConscript更多内容可以到RT-Thread的官网文档中心进一步了解https://www.rt-thread.org/document/site/programming-manual/scons/scons/#sconscript