Linux内核makefile框架

本文深入探讨了Linux内核的makefile框架,重点解析了Kbuild makefile的组成部分,包括Makefile、arch相关makefile、scripts/Makefile、Kbuild makefile和.config。Kbuild makefile主要负责定义编译选项,如obj-y、obj-m和lib-y,以确定目标编译进内核、模块还是库。解析流程涉及make menuconfig生成.config文件,然后makefile根据.config解析构建目标。此外,文章还介绍了如何新增目标及其在Kconfig和Kbuild makefile中的配置方式。

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

前瞻

官方文档位置:Linux/Documentation/Kbuild/makefiles.txt

内核makefile框架

linux内核makefile由五部分组成:
Makefile:顶层makefile,主makefile,用于定义vmlinux(kernel image)和module这两个目标的编译和构建及其在软件层面的依赖。
arch/$(ARCH)/Makefile:arch相关的makefile,arch/$(ARCH)/makefile定义目标在硬件架构层面上的依赖/编译选项,被主makefile所直接包含。
scripts/Makefile:makefile的解析规则。
Kbulid Makefile:分散在各个子目录下的makefile,用于逐级定义编译选项。
.config:kernel配置文件,该文件根据Kconfig文件,通过make menuconfig自动生成。

Kbulid makefile

Kbulid makefile可以使用Makefile和Kbulid两种文件名,但是当同一目录下同时含有这两种文件时,使用Kbuild文件作为makefile使用。

Kbuild目标定义
Kbuild的目标一般包含三种形式:编译进内核的obj、编译为单独模块的obj以及编译为库的lib,三者的表现形式分别为:

ob
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值