您的位置:首页 > 运维架构 > Linux

Linux 2.6 下内核模块的Makefile

2014-04-21 11:23 387 查看
Linux 2.6 下内核模块的Makefile

# Makefile 2.6
obj-m += hello.o

KDIR:=/lib/modules/$(shell uname -r)/build
# PWD=$(shell pwd)

all:
make -C $(KDIR) M=$(PWD) modules
clean:
make -C $(KDIR) M=$(PWD) clean


obj-m := hello.o表示编译后生成hello.o模块。

$(KDIR) 指定了内核源码的路径,“M=”表示这是个外部模块,M=$(PWD) 指定了该模块文件所在的路径。

注: makefile预定义了$(PWD)变量,此处可以不必重复定义。

如果是多个源文件编译出一个模块,假设模块名是test.ko,那么源文件名不能有test.c
obj-m := test.o
test-objs := file1.o file2.o file3.o
KDIR := /lib/modules/$(shell uname -r)/build
#PWD := $(shell pwd)

all:
make -C $(KDIR) M=$(PWD) modules
clean:
make -C $(KDIR) M=$(PWD) clean


注:2.6下编译模块的详细方法请参考linux/Documentation/kbuild/modules.txt
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: