免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1156 | 回复: 9
打印 上一主题 下一主题

:?:为什么我编译的.o文件不能加载?? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-01-06 09:24 |只看该作者 |倒序浏览
为什么我编译的.o文件不能加载??编译的是LDD2中的第一个“HELLO WORLD”的小程序。

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

int init_module(void){printk("hello,world\n";return 0;}
void cleanup_module(void) {printk("Goodbye cruel world\n";}

使用gcc编译
gcc -c hello.c

编译出hello.o文件。

使用insmod ./hello.o加载,提示
hello.o couldn't find the kernel version the module was compiled for


请问这个问题怎么解决??

论坛徽章:
0
2 [报告]
发表于 2004-01-06 10:20 |只看该作者

:?:为什么我编译的.o文件不能加载??

在开始加上如下行
#define __KERNEL__
#define MODULE
#define __KERNEL_SYSCALLS__

#ifdef CONFIG_MODVERSIONS
#define MODVERSIONS
#include <linux/modversions.h>;
#endif
每一个模块都需要为特定的内核编译;

你可以加上编译选项 -O2 -Wall,并使用-o指定一个输出文件名

论坛徽章:
0
3 [报告]
发表于 2004-01-06 11:12 |只看该作者

:?:为什么我编译的.o文件不能加载??

谢谢大虾,但是我在头文件中加入
#define __KERNEL__
#define MODULE
#define __KERNEL_SYSCALLS__

#ifdef CONFIG_MODVERSIONS
#define MODVERSIONS
#include <linux/modversions.h>;
#endif
之后,
并且进行如下编译
gcc -c -O2 -Wall hello.c
出现以下提示
hello.c:  In fuction 'Init_module':
hello.c:43: warning:implicit declaration of function'printk_R1b7d4074'
但是编译已经完成。用ls查找,有hello.o文件。
用insmod hello.o加载,问题依然存在。

是不是要重新编译一下内核,把这个模块编译进去啊?

论坛徽章:
0
4 [报告]
发表于 2004-01-06 11:38 |只看该作者

:?:为什么我编译的.o文件不能加载??

少了三行,不好意思
#ifndef KERNEL_VERSION
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << + (c))
#endif

论坛徽章:
0
5 [报告]
发表于 2004-01-06 11:58 |只看该作者

:?:为什么我编译的.o文件不能加载??

试过了,还是不行。。。。 :em12: 难道我人品问题???

请问这位大虾用的是什么版本的LINUX啊??我用的是redflag 4.0。。。。

痛苦中。。。。。

论坛徽章:
0
6 [报告]
发表于 2004-01-06 13:43 |只看该作者

:?:为什么我编译的.o文件不能加载??

估计是extraversion号的问题
没关系,你可以强制插入模块
insmod -f hello.o
不过最好还是想办法调整这个问题,回头再看看再谈这个

论坛徽章:
0
7 [报告]
发表于 2004-01-06 14:26 |只看该作者

:?:为什么我编译的.o文件不能加载??

楼上的方法好像也不能解决这个问题。。。。。

是不是因为我用root登录的,所以不能加载.o文件啊???

论坛徽章:
0
8 [报告]
发表于 2004-01-07 08:41 |只看该作者

:?:为什么我编译的.o文件不能加载??

没有人理我???555555。。。。。

论坛徽章:
0
9 [报告]
发表于 2004-01-07 08:48 |只看该作者

:?:为什么我编译的.o文件不能加载??

http://www.fanqiang.com/a4/b2/20010830/1500001210.html

论坛徽章:
0
10 [报告]
发表于 2004-01-07 11:18 |只看该作者

:?:为什么我编译的.o文件不能加载??

http://www.sakulagi.org/Source/other/HelloModExample.tgz
这个是我改过的例子,你看一下,里面有注释。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP