首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

简单聊聊Linux内核中的Kconfig和Makefile

我们知道对于Linux内核来讲Kconfig和Makefile是比较重要的两个文件。目录中的Kconfig文件的作用是增加关于新的源代码的编译配置选项,而Makefile则是文件中新的源代码的编译内容选项。接下来小编就来聊聊这两个文件的一些特性。

Kconfig

Kconfig是一个文本形式的文件,其中主要作用是在内核配置的时候,作为配置选项。典型的内核配置选项如下所示:

menu "Network device support"

config NETDEVICES

  bool "Enable Net Devices"

      depends on NET

      default y

       help

在这个例子中我们可以看到bool的单词,指的的是配置选项的的类型,对Kconfig来讲类型包括bool、tristate、string、hex和int,在这其中tristate和string是两种基本类型,其他的类型是基于这两种生成的。例子里面的depend on指的是依赖关系,也就是Network device support对NET的依赖,会被加载到配置选项NETDEVICES的依赖列表中。

Makefile

Makefile的作用就是决定哪些内容要作为模块编译,哪些要编译并链接至内核。比如obj-y += sunny.o就是要将sunny.c或者sunny.s文件编译得到sunny.o并且链接近内核中,obj-m += sunny.o代表该文件编译成模块形式,obj-n += sunny.o目标不会被编译。对于多模块编译的时候可以使用模块名加-y组成。比如:

obj-$(CONFIG_EXT1_FS) += ext1.o

ext1-y  := dir.o inode.o super.o

例子中的美元符号的代表的是括号与符号是个整体,它的值可以是y、m等。

总而言之,对于做linux底层驱动或者内核这一块的工作,对这两个文件必须是了如指掌,也是最基本的操作文本;由于作者的水平有限如有什么不对还请指正补充。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201106A007TD00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券