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

怎么编译驱动模块呢?

    来源: 互联网  发布时间:2015-10-12

    本文导语:  照猫画虎写了个字符设备驱动,不过该如何编译啊?     gcc  -c  myfirstdev.c  -D_KERNEL_  -DMODULE  -O2  -I/usr/src/linux-2.4.20-8/include  -g  -Wall  -o  myfirstdev.o   结果是:   In  file  included  from  /usr/src/linux-2.4.2...

照猫画虎写了个字符设备驱动,不过该如何编译啊?  
 
gcc  -c  myfirstdev.c  -D_KERNEL_  -DMODULE  -O2  -I/usr/src/linux-2.4.20-8/include  -g  -Wall  -o  myfirstdev.o  
结果是:  
In  file  included  from  /usr/src/linux-2.4.20-8/include/linux/sched.h:16,  
                                 from  /usr/src/linux-2.4.20-8/include/asm/uaccess.h:8,  
                                 from  myfirstdev.c:6:  
/usr/src/linux-2.4.20-8/include/linux/timex.h:173:  field  `time'  has  incomplete  type  
/usr/src/linux-2.4.20-8/include/linux/timex.h:188:  confused  by  earlier  errors,  bailing  out  
这些错好像都是指向内核中的。  
 
 
#include    
#include    
#include    
#include    
#include    
#include    
#include    
#include    
#include    
 
 
static  test_major=254;  
 
ssize_t  test_read(struct  file  *filp,char  *buf,size_t  count,loff_t  *f_pos);  
static  ssize_t  test_write(struct  file  *filp,const  char  *buf,size_t  count,loff_t  *ppos);  
int  test_open(struct  inode  *inode,struct  file  *filp);  
int  test_release(struct  inode  *inode,struct  file  *filp);  
 
struct  file_operations  test_ops={  
           open:            test_open,  
           release:test_release,  
           read:            test_read,  
           write:            test_write,  
};  
 
sszie_t  test_read(struct  file  *filp,char  *buf,size_t  count,loff_t  *f_pos)  
{  
           //read  operation  
           printk("read  operationn");  
}  
 
static  ssize_t  test_write(struct  file  *filp,const  char  *buf,size_t  count,loff_t  *ppos)  
{  
           //write  operation  
           printk("write  operationn");  
}  
 
int  test_open(struct  inode  *inode,struct  file  *filp)  
{  
           //open  operation  
           MOD_INC_USE_COUNT;  
           printk("open  operationn");  
           return  0;  
}  
   
int  test_release(struct  inode  *inode,struct  file  *filp)  
{  
           //release  operation  
           MOD_DEC_USE_COUNT;  
           printk("release  operationn");  
}  
 
int  init_module(void)  
{  
           int  result;  
           printk("init  module  operationn");  
           result=register_chrdev(test_major,"test",&test_ops);  
           printk("Major  is  %d!n",test_major);  
           return  0;  
}  
 
void  cleanup_module(void)  
{  
           unregister_chrdev(test_major,"test");  
           printk("exit  modulen");  
}  

|
提示很清楚啊!time 的类型没定义还差头文件吧

    
 
 

您可能感兴趣的文章:

  • *******是不是对内核模块编程然后再重新编译内核就可以把此模块整合到linux系统中
  • 驱动模块可以编入内核,想单独编译成模块,makefile怎么写?
  • 关于如何把编译进内核的编译成模块
  • 想问一下,编译LINUX内核时,是否可以只编译其中的一个模块?
  • [求教]内核加载模块后,这部分内容编译在内核里的吗?
  • 驱动模块编译调试问题、、????
  • 编译出来的内核模块怎么那么大
  • 如何查看编译进内核的模块
  • 编译模块的时候出现的问题
  • rndis驱动编译成内核模块
  • 将驱动模块编译进内核是否有用??
  • 如何编译内核源代码中的某一模块?
  • 编译模块的小问题
  • 为什么我编译的内核模块由300M这么大
  • 为什么apache编译后 ,没有rewrite模块?
  • apache模块静态编译问题
  • 模块编译问题!!!!!!!1
  • 模块编译问题?
  • BUS LOGIC是什么模块?编译内核在那里选?
  • 编译内核模块的问题....(急)
  • 动态编译与静态编译驱动程式疑问?
  • 在cygwin编译驱动程序要不要交叉编译?
  • 谁编译过PLX9054 Linux的驱动程序,我给100分教我编译和安装??
  • 请问做好的驱动,发布给用户的时候,用户必须要在各自的Linux中重新编译驱动源码才能使用吗?
  • 2.6.x驱动的编译如何指定编译工具?
  • ubuntu编译驱动问题
  • !请问,新下载的驱动程序该如何编译进内核呢?
  • 怎样交叉编译2.6内核下的驱动?
  • Linux下PCI驱动,怎么解决不同版本内核都需要重新编译的问题??
  • 求助,关于编译驱动进内核的一个问题,实在找不到资料了!
  • 关于网卡驱动编译的问题
  •  
    本站(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编译在嵌入式板子上运行就不正常.
  • C编译器 c++编译器 wieldylcc
  • Linux下gcc编译时,如何以静态链接的形式编译?
  • PROC开发时 //注释编译不通过 如何设置使用cpp编译。
  • 编译失败后如何再继续编译
  • 编译qt-x11,最后编译生成可执行文件时候,make出错
  • 如何查看已编译安装软件的编译命令行
  • 请问哪里有反编译.class文件的反编译器?
  • 用Jdk编译时出现提示要加 -deprecation 再编译,请教??
  • linux下有没有能编译出16bit代码的C语言编译器?
  • 我使用.net编译通过,但是使用g++编译不能通过。总是提示我undefined reference to ~myclass()


  • 站内导航:


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

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

    浙ICP备11055608号-3