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

Linux下编译驱动,出了很多问题,希望各位帮我看看!

    来源: 互联网  发布时间:2017-02-27

    本文导语:  [root@localhost root]# gcc -c -nostdinc firstmodule.c firstmodule.c: In function `init_module': firstmodule.c:13: warning: `struct file' declared inside parameter list firstmodule.c:13: warning: its scope is only this definition or declaration, which is prob...

[root@localhost root]# gcc -c -nostdinc firstmodule.c
firstmodule.c: In function `init_module':
firstmodule.c:13: warning: `struct file' declared inside parameter list
firstmodule.c:13: warning: its scope is only this definition or declaration, which is probably not what you want
firstmodule.c:13: warning: `struct inode' declared inside parameter list
firstmodule.c:19: warning: `struct file' declared inside parameter list
firstmodule.c:19: warning: `struct inode' declared inside parameter list
firstmodule.c: In function `release':
firstmodule.c:23: warning: `return' with a value, in function returning void
firstmodule.c: In function `init_module':
firstmodule.c:28: warning: `struct file' declared inside parameter list
firstmodule.c:28: warning: `struct inode' declared inside parameter list
firstmodule.c: In function `read':
firstmodule.c:31: `VERIFY_WRITE' undeclared (first use in this function)
firstmodule.c:31: (Each undeclared identifier is reported only once
firstmodule.c:31: for each function it appears in.)
firstmodule.c:31: `DEFAULT' undeclared (first use in this function)
firstmodule.c: In function `init_module':
firstmodule.c:40: warning: `struct file' declared inside parameter list
firstmodule.c:40: warning: `struct inode' declared inside parameter list

程序源码如下所示:

#include  // 在内核模块中共享
#include  // 一个模块
#include 
//#include 
//处理CONFIG_MODVERSIONS
#if CONFIG_MODVERSIONS == 1
#define MODVERSIONS
#include 
#endif
int init_module()       // 初始化模块  
{
printk("Hello! This is a testing module! n");
int open(struct inode *inode, struct file *filp)
{
MOD_INC_USE_COUNT;   // 增加该模块的用户数目
printk("This module is in open!n");
return 0;
}
void release(struct inode *inode, struct file *filp)
{
MOD_DEC_USE_COUNT; //该模块的用户数目减1
printk("This module is in release!n");
return 0;
#ifdef DEBUG 
    printk(“release(%p,%p)n”,inode,filp);
#endif 
}
int read(struct inode *inode, struct file *filp, char *buf, int count)
{
int leave;
if(verify_area(VERIFY_WRITE, buf, count) == DEFAULT)
return DEFAULT;
for(leave=count; leave>0; leave--)
{
__put_user(1,buf,1);
buf++;
}
return count;
}
int write(struct inode *inode, struct file *filp, const char *buf, int count)
{
return count;
 }
return 0;
}
void cleanup_module()//取消init_module()函数所做的打印功能操作 
{
printk("Sorry!The testing module is unloading now! n");
}

|
你不能在定义一个函数里面定义另外一个函数(个人理解,仅供参考)。具体如下:
举例:
int init_module()      // 初始化模块  

printk("Hello! This is a testing module! n"); 
int open(struct inode *inode, struct file *filp) 

MOD_INC_USE_COUNT;  // 增加该模块的用户数目 
printk("This module is in open!n"); 
return 0; 

你在init_module这个函数里面定义了另外一个函数int open(struct inode *inode, struct file *filp) 这个是在c
语言中不被允许的。如果你的open函数只是调用那请把int去掉。后面的函数同第一个。请版主改一下再试试!

    
 
 

您可能感兴趣的文章:

  • 一段可以在linux下编译并且运行正确的程序,在windows下编译也通不过.为什么?
  • 刚安装linux,如何在linux下编写程序?
  • 要在linux下编写关于openssl的程序,并要封装成.cab供win安装ActiveX
  • 怎样在linux下编译java?
  • 如何在linux下编写c程序
  • linux下编译firefox的问题
  • 在linux下编c程,找库
  • 急!急!急!急!急!如何在Linux下编译运行C++程序
  • 请问如何在linux环境下编写C++
  • 怎么在LINUX下编译JAVA?
  • ★★★在linux下编译pro*c文件,提示"sqlcxt"没有定义,哪位高手帮忙,定赠分!
  • 大家在UNIX/LINUX下编写C/C++程序时,用那些库?
  • 如何在linux下编写C程序?
  • 求教在LINUX下编写应用程序
  • 如何在linux下编译.pc程序
  • 请教:Linux下编译c代码,运行程序时出现undefined symbol exp
  • 求在Windows下编译Linux C程序的快捷途径?
  • linux下编译ACE5.7.5(总结)
  • linux下编译c++程序,系统头文件中包含的函数的定义源代码可以查看吗?
  • windows下编写的JAVA程序如何放到Linux下运行??
  • UIO(linux Userspace I/O子系统)用户空间设备驱动I/O技术介绍
  • Linux环境下,“PC机的驱动”与“嵌入式驱动”有什么区别?
  • linux驱动 单片机驱动
  • linux:怎么在驱动中调用IIC驱动?
  • linux下一个驱动怎么调用另一个驱动
  • redhat linux 9 与WNI xp共存一硬盘,显卡为 ATI RADEON 9600 可linux给出的驱动却是Vesa 的,我从驱动列表里选择了ATI RADEON 9600可是
  • Linux环境下,如何一个驱动中调用另外一个驱动
  • IT科技资讯 iis7站长之家
  • Linux 9.0+865G,只能上到640×480,Intel官方站点的最新驱动安装失败,那位有驱动?
  • Linux设备驱动(第三版)- 字符设备驱动 - 例子
  • Linux源代码中ata驱动为什么要调用pci驱动的代码
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 我希望安装linux,不过有些基础问题希望大家指教
  • 第一次进LINUX,希望大家多多照顾一下下弟!
  • 最近想学linux。希望老鸟们进来提个建议。
  • Linux安全设置问题,希望大伙进来看看
  • 希望大家给我介绍几本Linux好书!
  • 如何安装linux源程序(希望回答详细些)
  • 今天刚开了个freeBasic的中文论坛,希望大家一起来捧场,FB很强大支持LINUX的
  • 急!!安装linux出错!希望指教!非常谢谢!
  • 用虚拟机安装红旗Linux6.0出现的问题,希望高手解答。
  • 希望了解linux中elf程序装入器的实现
  • linux新手请教一个小问题,希望高手们多多指教!
  • 求Linux操作系统学习教程,要实用的,希望哪位大侠给传一本
  • 给大家推荐一个linux站点,希望有所收获!
  • 希望大家指教和讨论,在linux下,能用来代替ActiveX控件的技术手段是什么,用什么工具开发??
  • 我希望能加一些linux的朋友,我的QQ是16508921.
  • 新手问:现流行的Liunx版本有哪些?这些版本互相兼容吗?真希望有一个统一的Linux!!!
  • 急求 unix 与linux在文件存储上 和数据存储上有哪些不同 希望各路英雄帮忙
  • 初次安装linux9,一点问题希望大家帮帮忙
  • 希望各位大侠推荐一个好的linux系统。中档配置的机器使用。
  • 希望大家可以推荐几本学习linux的好书!
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • linux命令大全详细分类介绍及常用linux命令文档手册下载


  • 站内导航:


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

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

    浙ICP备11055608号-3