linux menuconfig搜索,linux系统menuconfig解析

2022-09-02 11:22:51 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

在对linux进行编译,常用的命令是make menuconfig,使用图形界面来对整个系统进行裁剪;这里主要就make menuconfig的执行过程进行解析。

介绍

跟make menuconfig这个命令相关的文件,包括三类,包括.config,Kconfig,Makefile。为什么不说三个,而说三类呢?因为Kconfig和Makefile是配合使用的,在很多的子目录都存在,而.config只存在于根目录中。这三个文件的作用分别是:

Kconfig:定义了配置项

.config:对配置项进行赋值

Makefile:建立配置项的生成法则

三者的关系为:make menuconfig依赖于Kconfig进行系统可视化配置,Kconfig为可视化配置菜单;在可视化配置界面修改完相应配置之后,生成的配置项保存在.config文件里,即对不同的配置项定义的赋值;在系统中运行make的时候,Makefile会依赖于.config里的配置项的值对Makefile里相应的选项进行编译。

菜单选项

Kconfig里的菜单选项的添加通过menu和endmenu关键字来添加,主菜单名称通过mainmenu来命名;mainmenu “Linux Configuration”

menu “Power Management”

source pm/Kconfig

endmenu

如果有多级菜单的话,可以通过多级嵌套来实现,这里类似于if和fi关键字;如果当前menu下包含有其他路径下的Kconfig文件,则用source 文件路径来调用该Kconfig文件;

变量配置

字符型变量,用关键字string;如果需要限制条件的话,通过if 限制条件来实现;config FRAMEWORK_DIR

string “FRAMEWORK directory”

default “../framework” if !WINDOWS_NATIVE

default “..framework” if WINDOWS_NATIVE

bool和int型变量,分别通过关键字bool或者int来实现,对于bool类型变量,default值为n或者y,n表示no,y表示yes;config DEFAULT_SMALL

bool “Default to smallest size”

default n

多选一窗口,通过choice和endchoice关键字实现;使用choice关键字的时候,需要定义prompt 和default 两个变量的值,前者为提示标签,后者为该多选一变量默认的初始值;choice

prompt “Build Host Platform”

default HOST_LINUX

config HOST_LINUX

bool “Linux”

config HOST_OSX

bool “OSX”

config HOST_WINDOWS

bool “Windows”

config HOST_OTHER

bool “Other”

endchoice

如果有依赖条件的话,通过关键字depends on实现,并列条件通过&&实现;config BUILD_KERNEL

bool “TinyAra kernel build”

depends on ARCH_USE_MMU && ARCH_ADDRENV && EXPERIMENTAL

select LIB_SYSCALL

help窗口,如果该条选项需要help窗口,则通过—help—关键字实现;—help—

Identifies the directory that builds the

application to link with TinyAra. Default: ../apps This symbol must be assigned

to the path to the application build directory *relative* to

the TinyAra top build directory. If you had an application

directory and the TinyAra directory each in separate directory

trees like this:

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/138735.html原文链接:https://javaforall.cn

0 人点赞