参考链接:
https://blog.csdn.net/wenbo13579/article/details/127464764
https://blog.csdn.net/qq_33229007/article/details/129340204
Menuconfig配置方法
- 通过可视化界面生成 .config 配置文件
- 编译时,通过 .config 配置文件生成 config.h 头文件,通过其中的宏定义来灵活控制功能模块的引入和参数配置
一、windows环境依赖包安装
windows环境需要安装python、pip工具,再安装以下依赖包:
> pip install windows-curses
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple kconfiglib
二、创建Kconfig文件
在文件夹下创建Kconfig文件,填入所需配置项。以下为示例(具体语法查看顶部的参考链接):
config KCONFIG_DEMO_ITEM1
bool
prompt "demonstate item1 for bool learning"
config KCONFIG_DEMO_ITEM2
string
prompt "demonstate item2 for string learning"
config KCONFIG_DEMO_ITEM3
hex
prompt "demonstate item3 for hex learning"
menuconfig KCONFIG_DEMO_MENUCONFIG1
bool
prompt "menuconfig learning"
if KCONFIG_DEMO_MENUCONFIG1
config MENUCONFIG_SUBITEM1
bool
prompt "menuconfig subitem1"
config MENUCONFIG_SUBITEM2
bool
prompt "menuconfig subitem2"
endif
menu "menu learning"
config MENU_SUBITEM1
bool
prompt "subitem1"
config MENU_SUBITEM2
bool
prompt "subitem2"
config MENU_SUBITEM3
bool
prompt "subitem3"
endmenu
choice
bool
prompt "choice learning"
config CHOICE_ITEM1
bool
prompt "choice1"
config CHOICE_ITEM2
bool
prompt "choice2"
config CHOICE_ITEM3
bool
prompt "choice3"
endchoice
config MY_CONFIG1
bool
prompt "my config1"
config MY_CONFIG2
bool
prompt "my config2" if MY_CONFIG1
config MY_CONFIG3
bool
prompt "my config3"
depends on MY_CONFIG2
三、调用Menuconfig可视化界面,设置配置项
- 打开powershell,并且cd定位到当前Kconfig文件的目录
- 输入menuconfig,打开可视化界面进行配置
- 配置完成后,按S键保存,退出
- 当前目录就会生成 .config 文件,保存了刚刚的设置方法
menuconfig
四、生成config.h配置文件
- 在.config目录下,调用genconfig.py脚本,脚本路径根据实际安装位置修改
- 生成config.h文件,里面包含通过界面设置的宏定义
python C:\Programs\Python\Python38-32\Lib\site-packages\genconfig.py
config.h文件,示例内容如下:
#define CONFIG_KCONFIG_DEMO_ITEM1 1
#define CONFIG_KCONFIG_DEMO_ITEM2 "hello"
#define CONFIG_KCONFIG_DEMO_ITEM3 0xAB
#define CONFIG_KCONFIG_DEMO_MENUCONFIG1 1
#define CONFIG_CHOICE_ITEM1 1
#define CONFIG_MY_CONFIG1 1
五、注意
- 上述方法实际上调用了kconfiglib中的接口,生成简单的config.h文件
- 如果需要在config.h中生成丰富的配置注释等内容,应该可以配置其它命令参数,后续再研究