redhat,第一个模块 module.h的问题
代码如下
#include<linux/module.h>
#define MODULE
int init_module(void){printk("<1>hello,world\n");return 0;}
void clearnup_module(void){printk("<1>goodbyr \n");}
==========================================
g++ hello.c -I /usr/src/kernels/2.6.18-92.el5-i686/include/linux/ -o hello
结果出来一大堆错误
在包含自 hello.c:1 的文件中:
/usr/src/kernels/2.6.18-92.el5-i686/include/linux/module.h:10:28: 错误:linux/spinlock.h:没有那个文件或目录
/usr/src/kernels/2.6.18-92.el5-i686/include/linux/module.h:11:24: 错误:linux/list.h:没有那个文件或目录
/usr/src/kernels/2.6.18-92.el5-i686/include/linux/module.h:13:28: 错误:linux/compiler.h:没有那个文件或目录
/usr/src/kernels/2.6.18-92.el5-i686/include/linux/module.h:14:25: 错误:linux/cache.h:没有那个文件或目录
/usr/src/kernels/2.6.18-92.el5-i686/include/linux/module.h:15:24: 错误:linux/kmod.h:没有那个文件或目录
/usr/src/kernels/2.6.18-92.el5-i686/include/linux/module.h:17:29: 错误:linux/stringify.h:没有那个文件或目录
/usr/src/kernels/2.6.18-92.el5-i686/include/linux/module.h:18:27: 错误:linux/kobject.h:没有那个文件或目录
/usr/src/kernels/2.6.18-92.el5-i686/include/linux/module.h:19:31: 错误:linux/moduleparam.h:没有那个文件或目录
/usr/src/kernels/2.6.18-92.el5-i686/include/linux/module.h:20:23: 错误:asm/local.h:没有那个文件或目录
/usr/src/kernels/2.6.18-92.el5-i686/include/linux/module.h:22:24: 错误:asm/module.h:没有那个文件或目录
In file included from hello.c:1:
/usr/src/kernels/2.6.18-92.el5-i686/include/linux/module.h:49: 错误:字段 ‘attr’ 的类型不完全
/usr/src/kernels/2.6.18-92.el5-i686/include/linux/module.h:60: 错误:字段 ‘kobj’ 的类型不完全
=======================================================
写了个 makefile 如下
obj-m := hello.o
KDIR :=/usr/src/kernels/2.6.18-92.el5-i686/include/linux/
PWD := $(shell pwd)
default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
make 后还是通不过 请教高手 指点下