当前位置:  技术问答>linux和unix

编译最简单的 hello world 模块出错,郁闷了,大家帮我来看看吧

    来源: 互联网  发布时间:2016-02-29

    本文导语:  刚自学linux驱动,对照着linux设备驱动程序(第三版)写了个hello world 就出错~~严重打击啊~各位大虾帮我看下 ~~谢谢了  内核版本:2.6.15 用的系统是ubuntu的 hello world代码是 #include  #include  #include  MODULE_LICEN...

刚自学linux驱动,对照着linux设备驱动程序(第三版)写了个hello world 就出错~~严重打击啊~各位大虾帮我看下 ~~谢谢了 
内核版本:2.6.15
用的系统是ubuntu的
hello world代码是

#include 
#include 
#include 
MODULE_LICENSE("GPL");// 新,否则有 waring, 去掉了 #define MODULE, 自动定义
static int hello_init(void)
{
printk(KERN_ALERT "Hello, worldn");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "Goodbye, cruel worldn");
}
module_init(hello_init);// 必须!!
module_exit(hello_exit); // 必须!!


Makefile里面就一句
obj-m := hello.o

#make -C /usr/src/linux-source-2.6.15 SUBDIRS=$PWD modules

然后就出现一大堆错误~~
出现的错误太多了 ~~COPY了前面几行和后面几行,太多了显示不下~中没有全部COPY下来,大家帮我看下吧~~谢谢了
/******************************************************************************************/ 
make: Entering directory `/usr/src/linux-source-2.6.15'
Makefile:490: .config: No such file or directory

  WARNING: Symbol version dump /usr/src/linux-source-2.6.15/Module.symvers
           is missing; modules will have no dependencies and modversions.

  CC [M]  /home/wyc/drivers/hello.o
cc1: error: include/linux/autoconf.h: No such file or directory
In file included from include/linux/module.h:9,
                 from /home/wyc/drivers/hello.c:1:
include/linux/config.h:6:28: error: linux/autoconf.h: No such file or directory
In file included from include/linux/module.h:10,
                 from /home/wyc/drivers/hello.c:1:
include/linux/sched.h:4:36: error: asm/param.h: No such file or directory
In file included from include/linux/posix_types.h:47,
                 from include/linux/types.h:14,
                 from include/linux/capability.h:16,
                 from include/linux/sched.h:7,
                 from include/linux/module.h:10,
                 from /home/wyc/drivers/hello.c:1:
/usr/lib/gcc/i486-linux-gnu/4.0.3/include/asm/posix_types.h:13:22: error: features.h: No such file or directory
/usr/lib/gcc/i486-linux-gnu/4.0.3/include/asm/posix_types.h:14:35: error: no include path in which to search for asm/posix_types.h
In file included from include/linux/capability.h:16,
                 from include/linux/sched.h:7,
                 from include/linux/module.h:10,
                 from /home/wyc/drivers/hello.c:1:
include/linux/types.h:15:23: error: asm/types.h: No such file or directory
In file included from include/linux/capability.h:16,
                 from include/linux/sched.h:7,
                 from include/linux/module.h:10,
                 from /home/wyc/drivers/hello.c:1:
..........................
.........................帖子太长,不让我递交,中间的 只好略过了 
........................
include/linux/kobject.h:33: 警告: 数据定义时没有类型或存储类
include/linux/kobject.h:38: 错误: 字段 ‘kref’ 的类型不完全
include/linux/kobject.h:153: 错误: 字段 ‘rwsem’ 的类型不完全
include/linux/kobject.h:236: 错误: 字段 ‘attr’ 的类型不完全
include/linux/kobject.h:237: 错误: syntax error before ‘ssize_t’
include/linux/kobject.h:237: 警告: 结构或联合后没有分号
include/linux/kobject.h:238: 错误: syntax error before ‘*’ token
include/linux/kobject.h:238: 错误: syntax error before ‘size_t’
include/linux/kobject.h:238: 警告: 在 ‘ssize_t’ 的声明中,类型默认为 ‘int’
include/linux/kobject.h:238: 警告: 函数声明不是一个原型
include/linux/kobject.h:238: 错误: ‘ssize_t’ 声明为返回一个函数的函数
include/linux/kobject.h:238: 警告: 函数声明不是一个原型
include/linux/kobject.h:238: 错误: ‘ssize_t’ 被重新声明为不同意义的符号
include/linux/types.h:70: 错误: ‘ssize_t’ 的上一个声明在此
include/linux/kobject.h:238: 警告: 数据定义时没有类型或存储类
In file included from /home/wyc/drivers/hello.c:1:
include/linux/module.h:21:23: error: asm/local.h: No such file or directory
include/linux/module.h:23:24: error: asm/module.h: No such file or directory
In file included from /home/wyc/drivers/hello.c:1:
include/linux/module.h:50: 错误: 字段 ‘attr’ 的类型不完全
include/linux/module.h:51: 错误: syntax error before ‘ssize_t’
include/linux/module.h:51: 警告: 结构或联合后没有分号
include/linux/module.h:52: 错误: syntax error before ‘*’ token
include/linux/module.h:53: 错误: syntax error before ‘size_t’
include/linux/module.h:53: 警告: 在 ‘ssize_t’ 的声明中,类型默认为 ‘int’
include/linux/module.h:53: 警告: 函数声明不是一个原型
include/linux/module.h:53: 错误: ‘ssize_t’ 声明为返回一个函数的函数
include/linux/module.h:53: 警告: 函数声明不是一个原型
include/linux/module.h:53: 错误: ‘ssize_t’ 被重新声明为不同意义的符号
include/linux/types.h:70: 错误: ‘ssize_t’ 的上一个声明在此
include/linux/module.h:53: 警告: 数据定义时没有类型或存储类
include/linux/module.h:57: 错误: syntax error before ‘}’ token
/home/wyc/drivers/hello.c:2:27: error:  linux/config.h: No such file or directory
/home/wyc/drivers/hello.c:15: 致命错误: 打开依赖文件 /home/wyc/drivers/.hello.o.d:Permission denied
编译中断。
make[1]: *** [/home/wyc/drivers/hello.o] 错误 1
make: *** [_module_/home/wyc/drivers] 错误 2
make: Leaving directory `/usr/src/linux-source-2.6.15'

/**********************************************************************************************/
不知道是代码错误还是我有什么地方配置错误了,大家帮 我 看看吧

|
我想可能先编译一遍内核会好些

|
内核代码目录树要是编译过的,才会有对应的文件

    
 
 

您可能感兴趣的文章:

  • 编译kernel失败,进来看看吧
  • 学java第二天,编了一个小程序,但是编译提示出错,各位帮忙看看吧
  • 编译qt-x11,最后编译生成可执行文件时候,make出错
  • 建立较差编译环境,编译gcc-3.4.4出错
  • arm-linux-gcc交叉编译出错,但gcc编译没错,什么原因呢???
  • linux 64位编译出错。linux 32位可以编译过。
  • 何处有 Linux 内核编译配置详细的中文介绍? 我在重新配置编译时老是出错:-(
  • 编译libxml2时出错 ,出错信息configure: error: C++ preprocessor "/lib/cpp" fails sanity check
  • 编译bootload出错
  • 编译出错,帮我看看代码和出错信息
  • 我在交叉编译SDL时.老是出错
  • 一个小小的问题-关于JDK的使用!编译出错提示的查看!
  • 编译内核出错,有没有人帮忙阿
  • 访问mysql编译出错!!!
  • 求救!!编译内核后,加载时出错。
  • 求助,编译出错!
  • 编译出错,是什么原因?
  • #define一行太长怎么办?我看代码中用了可惜gcc 编译时出错了
  • 为什么使用gcc编译出错。高人帮忙。。。。
  • sco 编译lisence出错 求救!
  • 请问机器升级后,编译为何出错?
  • 编译linux0.01内核时出错,没有权限?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux/centos源码安装nginx编译配置选项参数介绍
  • 请教:JSP编译器编译成字节码,跟别的编译器编译出来的有什么不同呢?
  • CentOS 6内核升级:下载编译启用新内核版本详细过程
  • 编译GCC时能不能只编译C/C++的编译器?
  • 高速的网络抓包库PF_ring介绍及编译安装
  • 关于arm交叉编译器4.3.3编译程序报错,但是3.4.5却能编译通过的问题
  • JB下,我的程序编译得好慢!请问用什么方法编译才可以快一点?或编译顺序改变一下?
  • 请问gdb是不是只能调试gcc编译的程序,在unix下用其它编译器编译的程序是不是不一定能用gdb调试的?
  • 用JCreator写了一个小程序,有十几个class,当修改某个文件重新编译,javac并没有编译修改的文件,请问要如何做javac才会重新编译所有的
  • 问:关于gcc编译器和g++编译器
  • 嵌入式linux开发:一段代码在windows平台用VC编译运行正常,在linux平台用gcc编译运行正常,但是用arm-linux-gcc编译在嵌入式板子上运行就不正常.
  • 在cygwin编译驱动程序要不要交叉编译?
  • 关于如何把编译进内核的编译成模块
  • C编译器 c++编译器 wieldylcc
  • Linux下gcc编译时,如何以静态链接的形式编译?
  • PROC开发时 //注释编译不通过 如何设置使用cpp编译。
  • 编译失败后如何再继续编译
  • 如何查看已编译安装软件的编译命令行
  • 请问哪里有反编译.class文件的反编译器?
  • 用Jdk编译时出现提示要加 -deprecation 再编译,请教??
  • linux下有没有能编译出16bit代码的C语言编译器?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3