linux menuconfig搜索,linux系统menuconfig解析

linux menuconfig搜索,linux系统menuconfig解析在对linux进行编译,常用的命令是makemenuconfig,使用图形界面来对整个系统进行裁剪;这里主要就makemenuconfig的执行过程进行解析。介绍跟makemenuconfig这个命令相关的文件,包括三类,包括.config,Kconfig,Makefile。为什么不说三个,而说三类呢?因为Kconfig和Makefile是配合使用的,在很多的子目录都存在,而.config只…

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

在对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.net/138735.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • CultureInfo中重要的InvariantCulture[通俗易懂]

    CultureInfo中重要的InvariantCulture[通俗易懂]CultureInfo简述CultureInfo类位于System.Globalization命名空间内,这个类和这个命名空间许多人都不了解也认为不需要太多了解,实际上,你写的程序中会经常间接得使用这些类。简单的说:当进行数字,日期时间,字符串匹配时,都会进行CultureInfo的操作,也就是不同的CultureInfo下,这些操作的结果可能会不一样。这里要介绍一下非常容易被忽视的In…

    2022年6月19日
    26
  • Redisson分布式锁的简单使用

    redis分布式锁学习和集成框架Redisson分布式锁的一些简单使用

    2022年3月1日
    55
  • TinyProxy:移动联通电信各个卡定向免流方法教程[通俗易懂]

    下载地址:https://www.lanzoui.com/i0Tsigfiv7c开始以电信星卡为例:打开软件右上角设置下高级模式然后返回复制下这模式【百度直连】免歪卡、星卡、小歪卡、小抖卡、大圣卡、百度系可免listen_port=65080; daemon=on; worker_proc=0; uid=3004; http_ip=112.80.255.21; http_port=443; http_del=”X-Online-Host,Host”..

    2022年4月15日
    396
  • goland 激活码2021.5[在线序列号]

    goland 激活码2021.5[在线序列号],https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    70
  • 带case操作的update语句_多个case when嵌套

    带case操作的update语句_多个case when嵌套1、场景:由于多次循环执行数据库操作是非常耗费性能的。因此,我们需要尽可能一条UPDATE语句更新多条数据。2、方式:casewhen拼凑UPDATE表名SET(目标字段)BRANCH_NO=CASEWHEN(筛选条件)BANK_BRANCH_ID=’-10212’THEN ‘TU32958123’WHENBANK_BRANCH_ID=’-10213’THEN ‘TU32958112’ELSE’测试’END,COMMENTS=CASEWH

    2025年9月21日
    11
  • Flash cookie — 本地共享对象(LOCAL SHARED OBJECTS)

    Flash cookie — 本地共享对象(LOCAL SHARED OBJECTS)写道本地共享对象(有时也称为“Flashcookie”)是一些可由您访问的站点在您的计算机上创建的数据文件。共享对象大多数情况下用来增强您浏览Web的体验。网站可以在您的计算机上编写cookie,当您下次访问该网站时,它将加载该cookie及其信息,从而使您拥有一种更加个性化的体验。例如,您可能让站点记住您的登录名。该信息存储在cookie中,并在您下次访问时被检索…

    2022年7月15日
    13

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号