标签:
1、单模块单文件
//*********************************************
obj-m := hello.o
KDIR := /home/akaedu/kernel/linux-2.6.35.7
all:
make -C $(KDIR) SUBDIRS=$(PWD) mudules
.PHONY:clean
clean:
-rm -rf *.o *.ko *~ *.mod.*
//*********************************************
2、单模块多文件
//*********************************************
obj-m := myhello.o
myhello-objs := hello.o goo.o
KDIR := /home/akaedu/kernel/linux-2.6.35.7
(其他同上)
//*********************************************
hello.c可直接调用goo.c中的函数,只需在hello.c中声明即可。
3、多模块
//*********************************************
obj-m := hello.o goo.o
KDIR := /home/akaedu/kernel/linux-2.6.35.7
(其他同上)
//*********************************************
注:其中,goo.c需要导出符号表,EXPORT_SYMBOL(goo),
供hello.c调用。
注:在编译模块前,linux源码包(或头文件包)必须经过正确编译,可提供导出符号表。
安装头文件包:
sudo apt-get install linux-headers-2.6.32-21-generic
sudo apt-get install linux-source-2.6.32
标签:
原文地址:http://www.cnblogs.com/embedded-linux/p/5572887.html