sunsili 发表于 2023-7-29 17:38:50

Linux中的 make config, make menuconfig, make oldconfig, make xx_defconfig

Linux中的 make config, make menuconfig, make oldconfig, make xx_defconfig

Linux的代码配置项由Kconfig来完成的,关于Kconfig语法,可参见:linux/Documentation/kbuild/kconfig-language.txt

在编译时,先进行配置,目的是根据需求选择功能以及编译生成方式类型(模式或包含在内核中).

配置项操作可以由如下命令中的其中一条来完成:

make config, make menuconfig, make oldconfig, make xx_defconfig

说明一下各config命令都做了什么事情:

make config: 这个要求你手动选择所有配置项,配置完成后生成.config文件.

make menuconfig: 显示以curses的图形配置菜单,当已有.config文件存在时,它会根据.config文件设定默认项.若不存在.config文件,则根据各级Kconfig文件来设定菜单项.完成配置后,生成.config文件.

make oldconfig:  与make menuconfig相同,区别在于这个没有图形界面,当已有.config文件存在时,它根据.config文件设定默认项,若kconfig有新配置项时,会提示你进行选择;若不存在.config文件,则根据各级Kconfig文件来设定菜单项.完成配置后,生成.config文件.

若已存在.config文件, make menuconfig及make oldconfig都会把原.config另存为.config.old.

make xx_defconfig:一般源码中都有不同硬件平台的默认配置文件,你也可以制做自己的默认配置文件,当这个命令执行时,它会根据kconfig及xx_defconfig来生成.config文件.

在执行完其中一条config命令后,会生成.config及autoconf文件,autoconf是根据配置项生成的相应宏定义,供makefile使用,当执行make命令时,就会根据autoconf定义的宏及makefile去编译源码.

页: [1]
查看完整版本: Linux中的 make config, make menuconfig, make oldconfig, make xx_defconfig