概述
这个工作之前做过一次,不过忘记了,今天因为要用到,又重新温习一遍。
关键的动作是在/drivers/char/Makefile的后面增加对应的source,这样就会使依赖关系发生作用
obj-$(CONFIG_SM1623DRV) += sm1623drv/
第二步就是同样在/drivers/char/Kconfig的后面增加对应的子文件夹的Kconfig文件,这样在执行 make menuconfig时就会寻找到对应的编译选项
source "drivers/char/sm1623drv/Kconfig"
之前有修改/arch/arm/Kconfig的说法,不知道是否必须,如果修改了这个,会在make menuconfig的顶层界面看到对应的module选项
需要注意的是,我开始犯了一个错误,导致一直编译不到目标目录,原因是一开始我在Makefile里写成这样
obj-$(SM1623DRV) += sm1623drv/实际上要写成
obj-$(CONFIG_SM1623DRV) += sm1623drv/否则系统因为找不到CONFIG_SM1632DRV这个宏导致不会编译sm1623drv目录里面的文件
Kconfig的样子:
#
# sm1623 driver.
#
config SM1623DRV
tristate "sm1623 driver"
default m
help
this is a sm1623 driver for DVD player...
SM1623DRV这个是要生成的宏,Makefile文件里就是判断这个宏,不过它前面要加上CONFIG_
其中tristate表示有3种可选项,分别是(M)编译为模块,(*)编译为内置方式,( )不编译
后面是默认的编译的方式,这里是以模块的方式
模块里的Makefile文件例子:
obj-$(CONFIG_SM1623DRV) += sm1623drv.o
最后
以上就是从容花卷为你收集整理的linux中kconfig文件,在Linux驱动之中通过修改kconfig文件添加menuconfig选项的全部内容,希望文章能够帮你解决linux中kconfig文件,在Linux驱动之中通过修改kconfig文件添加menuconfig选项所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复