QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2486|回复: 1

加载模块失败,请高手帮忙

[复制链接]
发表于 2006-5-18 14:54:08 | 显示全部楼层 |阅读模式
*********hello.c

#include<linux/init.h>
#include<linux/module.h>
#include"hello.h"

MODULE_LICENSE("Dual BSD/GPL");


static int hello_init(void)
{
        printk(KERN_ALERT "hello the world\n");
                msg();
        return 0;
}

static void hello_exit(void)
{
        printk(KERN_ALERT "Goodbye\n");
}

module_init(hello_init);
module_exit(hello_exit);

*************hello.h
void msg(void);

***************hello2.c
void msg(void)
{
        printk(KERN_ALERT "I am in the hello2.c\n");
}

****************makefile
obj-m :=hello.o
hello-objs:= hello.o hello2.o hello.h

makefile是放在源码树中的 linux/drivers/char/chen下
在char中的makefile加了一行
obj-m+=chen/hello.o
之前只写一个单文件(没有msg函数)的模块没有问题,现在我想试试多个文件
编译时警告说msg()没定义
但可以生成hello.ko
用insmod加载时失败,报错说有未定义的符号
内核2.6.16.2
我觉得应该不是makefile得问题
发表于 2006-6-11 11:16:56 | 显示全部楼层
是不是因为obj-m := hello.o中的hello.o和
hello-objs := hello.o hello2.o hello.h中的hello.o冲突的缘故?
还有hello.h没有必要加进去的
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-22 12:23 , Processed in 0.167129 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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