linux内核kconfig objs,Linux 内核中Kconfig和Makefile文件解释

Linux内核源码中广泛分布着两种文件:Kconfig和Makefile,那么这两种文件的作用具体是什么呢?

Makefile文件:

先说Makefile吧,Linux内核中Makefile主要分为以下几类:

1)Linux/Makefile(http://lxr.linux.no/linux+v2.6.36/Makefile):控制Linxu内核源码整体的编译选项,包括汇编器、c语言编译器的选择、引用.config文件等。

2).config文件:在编译Linxu内核时,运行完make menuconfig命令后,会产生一个.config文件,里面包含了用户选择的模块编译开关。

3)Linux/arch目录下的Makefile:包含与体系结构相关的选项。

4)Linux/script目录下的Makefile:一些Makefile通用的规则。

5)Kbulid Makefile:这种Makefile文件是Linux内核源码中最常见的一种Makefile文件,它的语法为:

obj-y或obj-m或obj-x += 目标文件.o

目标文件-objs := 目标文件1.o 目标文件2.o 目标文件3.o

这样就把三个目标文件1.o、目标文件2.o、目标文件3.o编译生成了一个目标文件.o。

(obj-y是编译进内核的,obj-m是被编译成模块、obj-x是不被编译进内核)

Kconfig文件:

当你使用make menuconfig编译内核的时候,会产生很多编译选项让用户选择,那么这些编译选项是怎么产生的呢?

make menuconfig命令使用Kconfig文件生成.config文件,然后.config文件会被Makefile引用,Kconfig文件的语法是:

例如:

menuconfig USB_SUPPORT

bool "USB support"

depends on HAS_IOMEM

default y

---help---

This option adds core support for Universal Serial Bus (USB).

You will also need drivers from the following menu to make use of it

endmenu

USB_SUPPORT是菜单选项,bool是菜单选项的类型,一般有bool、tristate等,bool表示[],只能选择编译进内核或不编译进内核、

tristate表示<>,可以选择编译成模块。

(通过查看Kconfig文件我们就可以选择自己感兴趣的内核源码去阅读,这样可以事倍功半)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值