在对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:

linux menuconfig搜索,linux系统menuconfig解析相关推荐

  1. linux menuconfig搜索,Linux make menuconfig查找并快速跳转指定驱动选项

    /********************************************************************** * Linux make menuconfig查找并快速 ...

  2. linux内核使用make编译出错,linux 内核编译错误 make menuconfig

    linux 内核编译错误 make menuconfig [root@fedora /usr/src/kernels/2.6.21-1.3194.fc7-i686]#make menuconfig H ...

  3. linux软件包管理解析,linux学习笔记_09_软件包管理解析.doc

    linux学习笔记_09_软件包管理解析 软件包管理 软件包分类 源码包(C语言编写的源代码) linux主要由C语言来写. 源码包可以用写字板打开 脚本安装包:源码包进行再开发的源码包(提供安装界面 ...

  4. YOCTO项目介绍:通过提供模版、工具和方法帮助开发者创建基于linux内核的定制系统

    目录 YOCTO项目介绍 配置内核 build配套 Yocto ,是一个开源社区.它通过提供模版.工具和方法帮助开发者创建基于linux内核的定制系统,支持ARM, PPC, MIPS, x86 (3 ...

  5. Linux操作系统内核启动参数详细解析[转]

    Linux操作系统内核启动参数详细解析http://os.51cto.com/art/200902/110080.htmhttp://os.51cto.com 2009-02-17 16:07 佚名 ...

  6. Linux 3.3.5系统移植

    Linux 3.3.5系统移植 1.将arch/arm/mach-s3c6410/下的,mach-smdk6410.c cp为mach-my6410.c; 2.打开arch/arm/mach-s3c6 ...

  7. Linux 3.3.5系统移植(refer)

    Linux 3.3.5系统移植 1.将arch/arm/mach-s3c6410/下的,mach-smdk6410.c cp为mach-my6410.c; 2.打开arch/arm/mach-s3c6 ...

  8. Linux学习之三-Linux系统的一些重要配置文件

    Linux学习之三-Linux系统的一些重要配置文件 1.网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0 说明: DEVICE=eth0        ...

  9. 小猿圈Linux学习-Linux种搜索的命令

    做Linux工程师的每天都不能少的工作就是搜索文件,这是他们的日常活动,很繁琐很枯燥,所以我们就需要知道一些搜索的命令,这些命令更高效更快捷,今天小猿圈就给大家分享4个可以搜索的Linux命令.. 方 ...

最新文章

  1. FAT32转换NTFS格式的命令
  2. 如何把单精度二进制数转换成十进制数?
  3. C++学习之路 | PTA乙级—— 1004 成绩排名 (20分)(精简)
  4. c语言实现万年历程序带节日,【C】万年历
  5. Spring容器创建流程(8)初始化bean
  6. 杜立特尔分解法 MATLAB,chase追赶法算法
  7. Axure原型设计介绍
  8. python 字典类型 get 参数_python如何利用urllib解析url参数成字典
  9. sqlserver2005 安装及SQL 2005 SP3补丁安装详解
  10. c语言猜拳游戏教案,幼儿园中班游戏《猜拳游戏》的教案
  11. 论文封面摘要正文页码不同 WORD中怎么编辑页码不连续 设置目录和正文页码不同
  12. 酷派大观4 8970 刷android 4.4,极速达百兆! 移动4G版酷派大观4网络体验
  13. Linux网络设备驱动结构概述
  14. C语言学习日记(2)——写个Hello,World测试一下
  15. C#的process进程的处理
  16. 智能硬件产品系列 之 MTK6580方案篇(一)硬件选型
  17. RPA对银行业的重塑:3个大型国际银行RPA应用案例
  18. 【GitLens】VsCode插件,查看代码是谁写的
  19. 交通灯keil程序加2位数码管_带数码管显示的十字路口交通灯控制 C 程序
  20. php输出扶墙而立的三角形,扶墙而立的成长历程——涉县五中刘嘉巍

热门文章

  1. 机器学习线性回归Matlab实现(附数据集)
  2. 北航微信打卡自动提醒程序
  3. MySQL+c语言——长途汽车管理系统
  4. 数据库(DataBase)-什么是数据库
  5. 对于Lattice FPGA/CPLD XO2编程,“Flash erase, program, verify, secure”和“Flash erase, program, verify, secu
  6. 下载****Hash校验和不符失败
  7. 1310. 数三角形(组合数学)
  8. Flutter 抽屉效果
  9. A7799之STM32程序——STM32测试高精度ADC篇(二)
  10. ceph分布式存储安装及简单使用