LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1042|回复: 1

关于学内核的初级问题

[复制链接]
发表于 2006-3-30 23:25:29 | 显示全部楼层 |阅读模式
刚刚才开始看关于内核方面的编程, 但是出现了好多不懂的地方,希望大家不吝赐教啊!~谢谢
#ifndef __KERNEL__
# define __KERNEL__
#endif
#ifndef MODULE
# define MODULE
#endif

#include <linux/config.h>
#include <linux/module.h>

MODULE_LICENSE("GPL");
#ifdef CONFIG_SMP
#define __SMP__
#endif

#include <linux/kernel.h> /* printk()在这个文件里 */

static int
init_module
(){
        printk("Hello,World!\n");
        return 0; /* 如果初始工作失败,就返回非0 */
}

static void
cleanup_module
(){
        printk("Bye!\n");
}


但是却输出了好多的错误:错误太多了,只复制了一点.
/usr/include/linux/module.h:50: 错误:字段 ‘attr’ 的类型不完全
/usr/include/linux/module.h:51: 错误:syntax error before ‘ssize_t’
/usr/include/linux/module.h:52: 错误:syntax error before ‘*’ token
/usr/include/linux/module.h:53: 错误:syntax error before ‘size_t’
/usr/include/linux/module.h:53: 错误:‘ssize_t’ 声明为返回一个函数的函数
/usr/include/linux/module.h:57: 错误:syntax error before ‘}’ token
/usr/include/linux/module.h:219: 错误:字段 ‘mattr’ 的类型不完全
hello.c:20: 错误:对 ‘init_module’ 的静态声明出现在非静态声明之后
/usr/include/linux/module.h:66: 错误:‘init_module’ 的上一个声明在此
hello.c:27: 错误:对 ‘cleanup_module’ 的静态声明出现在非静态声明之后
/usr/include/linux/module.h:67: 错误:‘cleanup_module’ 的上一个声明在此

谁能告诉我怎么办啊?

非常感谢!
发表于 2006-3-31 08:49:36 | 显示全部楼层
编译时 gcc -I/usr/src/linux/include -nostdinc ,避免使用 /usr/include/linux 中的头文件。
回复 支持 反对

使用道具 举报

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

本版积分规则

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