【Makefile】Linux内核模块编译
在Linux内核模块编译中,obj-m
用于指定将源代码编译为可动态加载的模块(.ko
文件),而非直接嵌入内核。
典型Makefile示例
# 定义要编译的内核模块对象文件(.o文件会自动生成对应的.ko模块)
obj-m += led_drv.o led_dev.o
# all目标:默认编译任务
all:
# 调用内核构建系统:
# -C 指定内核源码目录(/opt/kernel)
# SUBDIRS告诉内核构建系统模块源码的当前位置
# modules表示编译模块
make -C /opt/kernel SUBDIRS=$(PWD) modules# clean目标:清理编译生成的文件
clean:
# 调用内核构建系统的清理规则
make -C /opt/kernel SUBDIRS=$(PWD) clean
应用场景
驱动开发:编写硬件与操作系统之间的接口程序。