.config和makefile以及Kconfig的联系

本文解析了在nuttx或linux开发环境中,.config、makefile、Kconfig及menuconfig四种配置文件的作用与相互关系,并强调了正确配置流程的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:
在基于nuttx或者linux进行软件开发的过程中,经常接触到.config、makefile、Kconfig、menuconfig这四个config文件。非常有必要理清楚他们之间的关系。

1.makefile
指定那些文件编译、那些文件不编译,以及编译的依赖文件和生成的目标文件。
作用的对象是源文件。

2.Kconfig
用于构建menuconfig,menuconfig的显示选项均来自各个文件夹下的kconfig文件。

3.menuconfig
用于配置系统,实际上是根据kconfig文件中的宏定义,达到修改.config文件的目的。
在这里插入图片描述

4…config
用于编译内核时的参考文件,编译过程中的预编译,将读取.config文件中的宏定义,来达到选择性编译的目的。

这里需要注意的是:
若要修改配置,一定要在menuconfig中去进行配置,不能在Kconfig中去注释,否则注释后,构建的menuconfig选项不全,导致在menuconfig中无法修改.coonfig文件。

linzihao@linzihao-virtual-machine:~/Code/test/coursework2/work5/linux-5.15.93$ make menuconfig HOSTCC scripts/basic/fixdep UPD scripts/kconfig/mconf-cfg HOSTCC scripts/kconfig/mconf.o HOSTCC scripts/kconfig/lxdialog/checklist.o HOSTCC scripts/kconfig/lxdialog/inputbox.o HOSTCC scripts/kconfig/lxdialog/menubox.o HOSTCC scripts/kconfig/lxdialog/textbox.o HOSTCC scripts/kconfig/lxdialog/util.o HOSTCC scripts/kconfig/lxdialog/yesno.o HOSTCC scripts/kconfig/confdata.o HOSTCC scripts/kconfig/expr.o LEX scripts/kconfig/lexer.lex.c YACC scripts/kconfig/parser.tab.[ch] HOSTCC scripts/kconfig/lexer.lex.o HOSTCC scripts/kconfig/menu.o HOSTCC scripts/kconfig/parser.tab.o HOSTCC scripts/kconfig/preprocess.o HOSTCC scripts/kconfig/symbol.o HOSTCC scripts/kconfig/util.o HOSTLD scripts/kconfig/mconf .config:898:warning: symbol value 'm' invalid for HOTPLUG_PCI_SHPC .config:1126:warning: symbol value 'm' invalid for NF_CT_PROTO_GRE .config:1154:warning: symbol value 'm' invalid for NF_NAT_REDIRECT .config:1157:warning: symbol value 'm' invalid for NF_TABLES_INET .config:1158:warning: symbol value 'm' invalid for NF_TABLES_NETDEV .config:1341:warning: symbol value 'm' invalid for NF_TABLES_IPV4 .config:1346:warning: symbol value 'm' invalid for NF_TABLES_ARP .config:1388:warning: symbol value 'm' invalid for NF_TABLES_IPV6 .config:1906:warning: symbol value 'm' invalid for NET_DEVLINK .config:2058:warning: symbol value 'm' invalid for MTD_NAND_ECC .config:3519:warning: symbol value 'm' invalid for ISDN_CAPI .config:4001:warning: symbol value 'm' invalid for HW_RANDOM_TPM .config:4950:warning: symbol value 'm' invalid for LIRC .config:5761:warning: symbol value 'm' invalid for HSA_AMD .config:6175:warning: symbol value 'm' invalid for SND_SOC_INTEL_SST_TOPLEVEL .config:6180:warning: symbol value 'm' invalid for SND_SOC_INTEL_MACH .config:7793:warning: symbol value 'm' invalid for PVPANIC .config:7867:warning: symbol value 'm' invalid for REMOTEPROC Your display is too small to run Menuconfig! It must be at least 19 lines by 80 columns. scripts/kconfig/Makefile:48: recipe for target 'menuconfig' failed make[1]: *** [menuconfig] Error 1 Makefile:620: recipe for target 'menuconfig' failed make: *** [menuconfig] Error 2——为什么我在运行这一步的时候会报该错误
最新发布
08-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值