免费注册 查看新帖 |

Chinaunix

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

有关模块编程的编译问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-04-18 14:45 |只看该作者 |倒序浏览
初学Linux下的模块编程,从网上找了一些资料照着做。但是在编译时出现一大堆错误或警告信息。
代码如下:
#include <linux/kernel.h>;/* 我们在做内核的工作 */
#include <linux/module.h>;/* 明确的,一个模块 */

/* 处理 CONFIG_MODVERSIONS */
#if CONFIG_MODVERSIONS==1
#define MODVERSIONS
#include
#endif

/* 初始化模块 */
int init_module()
{
printk("Hello, world - this is the kernel speaking\n";

/* 如果我们返回一个非零值, 那就意味着
* init_module 初始化失败并且内核模块
* 不能加载 */
return 0;
}

/* Cleanup - 撤消 init_module 所做的任何事情 */
void cleanup_module()
{
printk("Short is the life of a kernel module\n";
}
编译命令是:gcc -Wall -DMODULE -D__KERNEL__ -DLINUX -c hello.c
请问是因为什么原因呢?因为错误提示太多,没有列出。估计可能是头文件出的问题。

论坛徽章:
0
2 [报告]
发表于 2004-04-30 11:29 |只看该作者

有关模块编程的编译问题

有俩种方法可以解决
1将/usr/src/linux-version/Makefiel文件的第四行
EXTRAVERSION = -14 custom后的custom去掉并运行
#make dep
#gcc -DCONFIG_KERAELD -DMODULE -D__KERNEL__ -DLinux -O6 -Wall -I /lib/modules/version/build/include -c hello.c -o hello.o
2将/usr/include/linux/version.h中的"2.4.9-9"该为您的"version"
再执行上面的编译命令,ok?
version是您的linux版本号
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP