eclipse_2 发表于 2008-10-14 18:15

找不到module.h

我写了个简单的内核模块
helloworld.c
#define MODULE
#include <linux/module.h>
int init_module(void)
{
      printk("<1>Hello World!\n");
      return 0;
}
void cleanup_module(void)
{
      printk("<1>GoodBye!\n");
}

gcc -c helloword.c
helloworld.c:3:26: 错误:linux/module.h:没有那个文件或目录
我在/usr/include/linux/下找了下 没有找到module.h 其他的头文件里也没有找到
这个是怎么回事?
期待高手指点一下

duanjigang 发表于 2008-10-14 18:15

请注意学习方法,不要一上来就生啃代码,很费时间的:wink:
http://www.faqs.org/docs/kernel/
请阅读内核模块编程入门手册先:lol:

kwest 发表于 2008-10-14 19:33

module.h是在kernel/include/linux目录下,不在用户空间。

eclipse_2 发表于 2008-10-14 19:45

原帖由 kwest 于 2008-10-14 19:33 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
module.h是在kernel/include/linux目录下,不在用户空间。
没有提供一个应用程序的接口吗?
那我这个程序怎么改才能正确?
系统是rhel5

eclipse_2 发表于 2008-10-14 19:56

原帖由 duanjigang 于 2008-10-14 19:51 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
请注意学习方法,不要一上来就生啃代码,很费时间的:wink:
http://www.faqs.org/docs/kernel/
请阅读内核模块编程入门手册先:lol:
恩 多谢指点
但是我还是想快点把程序调试通过
能指点一下吗?

duanjigang 发表于 2008-10-14 20:03

原帖由 eclipse_2 于 2008-10-14 19:56 发表 http://linux.chinaunix.net/bbs/images/common/back.gif

恩 多谢指点
但是我还是想快点把程序调试通过
能指点一下吗?
我给你那个网址,你点击进去看下,随便一个例子都能帮你解决

eclipse_2 发表于 2008-10-14 20:26

原帖由 duanjigang 于 2008-10-14 20:03 发表 http://linux.chinaunix.net/bbs/images/common/back.gif

我给你那个网址,你点击进去看下,随便一个例子都能帮你解决
我看了的
我碰到的是具体的问题 不是那几片纸 没有module.h文件
之前好像没有装kernel-devel这个包
然后我装了之后 才找到module.h这个头文件
装好之后 我用gcc -I 把头文件包进来
出现了之类的错误
我只是一个编程新手 给我来点实际的东东吧
/usr/src/kernels/2.6.18-8.el5-i686/include/linux/module.h:10:28: 错误:linux/spinlock.h:没有那个文件或目录
/usr/src/kernels/2.6.18-8.el5-i686/include/linux/module.h:11:24: 错误:linux/list.h:没有那个文件或目录
/usr/src/kernels/2.6.18-8.el5-i686/include/linux/module.h:13:28: 错误:linux/compiler.h:没有那个文件或目录
/usr/src/kernels/2.6.18-8.el5-i686/include/linux/module.h:14:25: 错误:linux/cache.h:没有那个文件或目录
/usr/src/kernels/2.6.18-8.el5-i686/include/linux/module.h:15:24: 错误:linux/kmod.h:没有那个文件或目录
/usr/src/kernels/2.6.18-8.el5-i686/include/linux/module.h:17:29: 错误:linux/stringify.h:没有那个文件或目录
/usr/src/kernels/2.6.18-8.el5-i686/include/linux/module.h:18:27: 错误:linux/kobject.h:没有那个文件或目录
/usr/src/kernels/2.6.18-8.el5-i686/include/linux/module.h:19:31: 错误:linux/moduleparam.h:没有那个文件或目录
/usr/src/kernels/2.6.18-8.el5-i686/include/linux/module.h:20:23: 错误:asm/local.h:没有那个文件或目录
/usr/src/kernels/2.6.18-8.el5-i686/include/linux/module.h:22:24: 错误:asm/module.h:没有那个文件或目录

Roemer 发表于 2008-10-15 03:25

看一下 linux device driver 3rd    第2章

http://lwn.net/images/pdf/LDD3/ch02.pdf

linuxasker 发表于 2009-05-12 15:51

其实module.h是在/usr/src/.../include/linux/module.h
而不是在/usr/include/linux/module.h
如果是2.4.x在/usr/src/linux/include/linux/module.h
如果在2.6.x,用命令grep -r module.h /usr/src找吧

linuxasker 发表于 2009-05-12 15:52

太迟看到了,估计已经对楼主没有什么帮助了,抱歉
页: [1] 2
查看完整版本: 找不到module.h