编译模块的问题

软件和网站开发以及相关技术探讨
回复
sunandrain
帖子: 19
注册时间: 2005-08-11 10:13

编译模块的问题

#1

帖子 sunandrain » 2005-10-24 21:50

代码如下:

代码: 全选

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

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

void cleanup_module(void)
{
    printk("<1>Goodbye cruel world\n");
}
用gcc -c hello.c编译的时候出错:
In file included from /usr/include/linux/sched.h:16,
from /usr/include/linux/module.h:9,
from hello.c:2:
/usr/include/linux/signal.h:2:2: warning: #warning "You should include <signal.h>. This time I will do it for you."
In file included from /usr/include/linux/resource.h:4,
from /usr/include/linux/sched.h:79,
from /usr/include/linux/module.h:9,
from hello.c:2:
/usr/include/linux/time.h:9: error: redefinition of ‘struct timespec’
/usr/include/linux/time.h:15: error: redefinition of ‘struct timeval’
/usr/include/linux/time.h:20: error: redefinition of ‘struct timezone’
/usr/include/linux/time.h:47: error: redefinition of ‘struct itimerval’
In file included from hello.c:2:
/usr/include/linux/module.h:41: error: field ‘attr’ has incomplete type
/usr/include/linux/module.h:49: error: field ‘kobj’ has incomplete type

请问如何解决?
谢谢!
ubuntu~~~
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#2

帖子 eexpress » 2005-10-24 21:52

为什么是module.h这个呢。不是应该掉用什么用什么h文件吗。全部包含当然容易出错。
● 鸣学
sunandrain
帖子: 19
注册时间: 2005-08-11 10:13

#3

帖子 sunandrain » 2005-10-24 21:55

<<Linux设备驱动程序>>中的例子就是这么写的啊。
ubuntu~~~
头像
yonsan
帖子: 887
注册时间: 2005-07-01 18:56
来自: 广州市

#4

帖子 yonsan » 2005-10-24 22:22

看看leal兄的blog ! 这个问题讨论过一下!
I will be back!
sunandrain
帖子: 19
注册时间: 2005-08-11 10:13

#5

帖子 sunandrain » 2005-10-24 22:46

谢谢!
不过没找到,能不能给个链接?
ubuntu~~~
头像
yonsan
帖子: 887
注册时间: 2005-07-01 18:56
来自: 广州市

#6

帖子 yonsan » 2005-10-24 22:54

I will be back!
回复