LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 706|回复: 4

内核编程版本的问题

[复制链接]
发表于 2005-2-23 15:26:05 | 显示全部楼层 |阅读模式
我按照书上的例子写的程序,如下:
temp.c

#define MODULE
#include <linux/module.h>

int init_module(void)
{
ptintk("<1>hello,world\n");
return 0;
}

int cleanup_module(void)
{
ptintk("<1>Goodbye,world\n");
}

可是我在编译之后,insmod这个模块时,提示:
temp.o: kernel-module version mismatch
        temp.o was compiled for kernel version 2.4.20
        while this kernel is version 2.4.22-1.2115.npt1.

请问应该怎么办阿?

我并不想insmod -f temp.o
发表于 2005-2-23 17:17:26 | 显示全部楼层
请提问前先搜索。下面是我的搜索结果。
http://www.linuxsir.cn/bbs/search.php?searchid=107062
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-2-23 18:40:03 | 显示全部楼层
问题解决了,gcc -c temp.c -I /usr/src/linux-2.4/include

可是我想问一下,在我的程序中linux/module.h缺省去哪里找啊?肯定不是路径/usr/src/linux-2.4/include
,可是应该是哪里呢?
郁闷!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-2-23 19:03:01 | 显示全部楼层
搞定。
程序缺省时在/usr/include下面寻找头文件,可是在这个路径下的linux/version.h定义的version为2.4.20,所以跟当前内核版本不兼容。当然,我只要修改该version为2.4.22-1.2115.npt1,重新编译,一切OK。
另外,我还可以在makefile文件里添加-I /usr/src/linux-2.4/includ即可,也就时让编译器到这个目录寻找头文件。
虽然很菜,但还是与大家分享。
请毋笑话。
回复 支持 反对

使用道具 举报

发表于 2005-2-23 22:09:21 | 显示全部楼层
没什么好笑话的,我对内核编程还是一窍不通呢。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表