分页: 1 / 1

编译模块的问题

发表于 : 2005-10-24 21:50
sunandrain
代码如下:

代码: 全选

#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

请问如何解决?
谢谢!

发表于 : 2005-10-24 21:52
eexpress
为什么是module.h这个呢。不是应该掉用什么用什么h文件吗。全部包含当然容易出错。

发表于 : 2005-10-24 21:55
sunandrain
<<Linux设备驱动程序>>中的例子就是这么写的啊。

发表于 : 2005-10-24 22:22
yonsan
看看leal兄的blog ! 这个问题讨论过一下!

发表于 : 2005-10-24 22:46
sunandrain
谢谢!
不过没找到,能不能给个链接?

发表于 : 2005-10-24 22:54
yonsan