2022年Linux.内核模块编译Makefile .pdf
《2022年Linux.内核模块编译Makefile .pdf》由会员分享,可在线阅读,更多相关《2022年Linux.内核模块编译Makefile .pdf(3页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、编译模块的 make file 必须是 Makefile, 不能是 makefile. /why? ifneq ($(KERNELRELEASE),) obj-m := mytest.o mytest-objs := file1.o file2.o file3.o else KDIR := /lib/modules/$(shell uname -r)/build PWD := $(shell pwd) default: $(MAKE) -C $(KDIR) M=$(PWD) modules endif 解释为:KERNELRELEASE 是在内核源码的顶层Makefile 中定义的一个变量,
2、在第一次读取执行此Makefile 时,KERNELRELEASE没有被定义,所以 make 将读取执行 else 之后的内容。如果make 的目标是 clean ,直接执行 clean 操作,然后结束。当make 的目标为 all 时, -C $(KDIR) 指明跳转到内核源码目录下读取那里的Makefile ; M=$(PWD) 表明然后返回到当前目录继续读入、执行当前的Makefile 。当从内核源码目录返回时, KERNELRELEASE已被被定义, kbuild 也被启动去解析 kbuild 语法的语句, make 将继续读取 else 之前的内容。 else 之前的内容为 kbui
3、ld 语法的语句 , 指明模块源码中各文件的依赖关系,以及要生成的目标模块名。mytest-objs := file1.o file2.o file3.o 表示 mytest.o 由 file1.o ,file2.o 与 file3.o 连接生成。 obj-m := mytest.o 表示编译连接后将生成mytest.o 模块。- 另外转载:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 3 页 - - - - - - - - - 发现自己以前写的2.4 的模块无法在 2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年Linux.内核模块编译Makefile 2022 Linux 内核 模块 编译 Makefile
限制150内