Loading

Linux内核源码编译过程

一、在最外层目录下,有一个最大的Makefile文件,会递归遍历目录下的文件

image

二、Kconfig文件,设置编译选项,即编译内核时,make menuconfig时弹出来的配置框

image

三、对应目录下的Makefile文件

image

obj-y 表示编译到内核里面
obj-m 表示编译成驱动
obj-n 表示即不编译到内核里面,也不编译成驱动

至于编译到内核中,还是编译成驱动。由kconfig中的配置决定了。

obj-y += vt/      可以直接加目录,表示需要递归到这个文件夹下面
四、编译过程

1、每一个目录下会生成一个built-in.o文件,里面包含了当前目录编译后的所有.o文件,所以内核在链接的时候,只需要链接built-in.o文件就可以了。
image

2、链接文件,告诉编译器如何链接成为一个可执行文件
image

vmlinux-dirs:该变量告诉内核需要链接那些路径下的文件

image

#make V=1 /* 会展示出内核编译连接时所有的细节 */

posted @ 2021-09-03 00:09  鱼儿叁  阅读(402)  评论(0编辑  收藏  举报