前言
笔者最近在移植LVGL时发现keil并不支持将文件夹嵌套添加文件,需要手动点开文件夹添加. 恰巧需要移植添加的文件非常多且有多重嵌套,一个一个手动添加对于懒人来说非常不友好,所以笔者借助AI的帮助完成了一个python脚本自动将文件夹内的全部.c , .h文件一次性添加到项目中
2024.12.20更新
使用qt开发的工具,可以自由选择文件夹位置,无需再移动到指定路径
工具下载地址
任选一个下载即可
脚本使用
下载解压后有一个python文件,要使用脚本需要先下载python运行环境
python安装很简单,安装好后在配置python运行的环境变量,如果一切正常打开命令行窗口输入python会有提示
Python 3.12.3 (tags/v3.12.3:f6650f9, Apr 9 2024, 14:05:25) [MSC v.1938 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
接下来将py脚本移动到项目文件夹下,无论是hal库还是标准库,找准后缀是.uvprojx带有keil图标的文件
要添加进工程的文件夹可以放在外层也可以和.uvprojx在同一层目录,这里为了代码层次清晰放在外层
在脚本的目录输入cmd打开命令行
在命令行中输入
python addFiles.py 参数一 参数二
参数一:要添加的文件夹对应.uvprojx的相对路径,这里是放在外层文件夹, 使用../lvgl
../ 表示父文件夹
如果放在同一文件夹下,就使用./lvgl
./ 表示当前文件夹
lvgl替换成你自己文件夹的名称
参数二: keil中需要添加文件的目录,如图二
添加成功会提示Files added successfully.
图一
图二
正常进行到这里文件已经打入项目中,keil会弹出提醒框,提示文件被修改需要重新加载项目,
如果没有弹出提示框,说明修改的信息还没有保存,这时需要手动保存
使用记事本或者vscode或者任何文本编辑器打开.uvprojx文件,注意不是启动keil,打开后内容是类似:
此时shift+s或者点击保存按钮都可以,然后keil就会弹出提示重载项目,至此完成
如果编译碰到找不到头文件,需要进target->c/c++中配置include path
原理
笔者推测keil通过xml格式保存项目结构,用文本格式打开.uvprojx文件即可发现
Group对应项目结构的Group
<GroupName> 对应项目的Group名字
<FileName> 对应Group下文件的名称
<FileType> 对应后缀类型, .c类型是1 .h类型是5
<FilePath> 对应文件相当与此文件的相对路径
如果觉得有用就点下赞吧😁