请教高手 这个字符驱动为什么编译有问题?
时间:2005-08-25
来源:互联网
各位大侠,小弟正在学习linux驱动,参考的书时《linux设备驱动(第二版)》使用的系统是rh9.0,
现在看到第三章:字符设备驱动.由于ORielly提供的sample没有编译成功,听说是内核的系统不是标准的.(也不知怎么解决)
刚从网上下载了一个chardev的例子但是没有编译成功,使用gcc编译时出现了如下的错误
不知是何原因,望知道的大侠给点提示,
附件里是源程序.谢谢了
gcc -c chardev.c
chardev.c:73: warning: `struct file' declared inside parameter list
chardev.c:73: warning: its scope is only this definition or declaration, which is probably not what you want
chardev.c:73: warning: `struct inode' declared inside parameter list
chardev.c: In function `device_open':
chardev.c:82: `EBUSY' undeclared (first use in this function)
chardev.c:82: (Each undeclared identifier is reported only once
chardev.c:82: for each function it appears in.)
chardev.c: At top level:
chardev.c:117: warning: `struct file' declared inside parameter list
chardev.c:117: warning: `struct inode' declared inside parameter list
chardev.c:150: warning: `struct file' declared inside parameter list
chardev.c:150: warning: `struct inode' declared inside parameter list
chardev.c:200: warning: `struct file' declared inside parameter list
chardev.c:200: warning: `struct inode' declared inside parameter list
chardev.c:239: warning: `struct file' declared inside parameter list
chardev.c:239: warning: `struct inode' declared inside parameter list
chardev.c: In function `device_ioctl':
chardev.c:270: warning: passing arg 1 of `device_write' from incompatible pointer type
chardev.c:270: warning: passing arg 2 of `device_write' from incompatible pointer type
chardev.c:281: warning: passing arg 1 of `device_read' from incompatible pointer type
chardev.c:281: warning: passing arg 2 of `device_read' from incompatible pointer type
chardev.c: At top level:
chardev.c:315: variable `Fops' has initializer but incomplete type
chardev.c:316: warning: excess elements in struct initializer
chardev.c:316: warning: (near initialization for `Fops')
chardev.c:317: warning: excess elements in struct initializer
chardev.c:317: warning: (near initialization for `Fops')
chardev.c:318: warning: excess elements in struct initializer
chardev.c:318: warning: (near initialization for `Fops')
chardev.c:319: warning: excess elements in struct initializer
chardev.c:319: warning: (near initialization for `Fops')
chardev.c:320: warning: excess elements in struct initializer
chardev.c:320: warning: (near initialization for `Fops')
chardev.c:321: warning: excess elements in struct initializer
chardev.c:321: warning: (near initialization for `Fops')
chardev.c:322: warning: excess elements in struct initializer
chardev.c:322: warning: (near initialization for `Fops')
chardev.c:323: warning: excess elements in struct initializer
chardev.c:323: warning: (near initialization for `Fops')
chardev.c:328: warning: excess elements in struct initializer
chardev.c:328: warning: (near initialization for `Fops')
chardev.c:315: storage size of `Fops' isn't known
make: *** [chardev.o] Error 1
+++ End +++
现在看到第三章:字符设备驱动.由于ORielly提供的sample没有编译成功,听说是内核的系统不是标准的.(也不知怎么解决)
刚从网上下载了一个chardev的例子但是没有编译成功,使用gcc编译时出现了如下的错误
不知是何原因,望知道的大侠给点提示,
附件里是源程序.谢谢了
gcc -c chardev.c
chardev.c:73: warning: `struct file' declared inside parameter list
chardev.c:73: warning: its scope is only this definition or declaration, which is probably not what you want
chardev.c:73: warning: `struct inode' declared inside parameter list
chardev.c: In function `device_open':
chardev.c:82: `EBUSY' undeclared (first use in this function)
chardev.c:82: (Each undeclared identifier is reported only once
chardev.c:82: for each function it appears in.)
chardev.c: At top level:
chardev.c:117: warning: `struct file' declared inside parameter list
chardev.c:117: warning: `struct inode' declared inside parameter list
chardev.c:150: warning: `struct file' declared inside parameter list
chardev.c:150: warning: `struct inode' declared inside parameter list
chardev.c:200: warning: `struct file' declared inside parameter list
chardev.c:200: warning: `struct inode' declared inside parameter list
chardev.c:239: warning: `struct file' declared inside parameter list
chardev.c:239: warning: `struct inode' declared inside parameter list
chardev.c: In function `device_ioctl':
chardev.c:270: warning: passing arg 1 of `device_write' from incompatible pointer type
chardev.c:270: warning: passing arg 2 of `device_write' from incompatible pointer type
chardev.c:281: warning: passing arg 1 of `device_read' from incompatible pointer type
chardev.c:281: warning: passing arg 2 of `device_read' from incompatible pointer type
chardev.c: At top level:
chardev.c:315: variable `Fops' has initializer but incomplete type
chardev.c:316: warning: excess elements in struct initializer
chardev.c:316: warning: (near initialization for `Fops')
chardev.c:317: warning: excess elements in struct initializer
chardev.c:317: warning: (near initialization for `Fops')
chardev.c:318: warning: excess elements in struct initializer
chardev.c:318: warning: (near initialization for `Fops')
chardev.c:319: warning: excess elements in struct initializer
chardev.c:319: warning: (near initialization for `Fops')
chardev.c:320: warning: excess elements in struct initializer
chardev.c:320: warning: (near initialization for `Fops')
chardev.c:321: warning: excess elements in struct initializer
chardev.c:321: warning: (near initialization for `Fops')
chardev.c:322: warning: excess elements in struct initializer
chardev.c:322: warning: (near initialization for `Fops')
chardev.c:323: warning: excess elements in struct initializer
chardev.c:323: warning: (near initialization for `Fops')
chardev.c:328: warning: excess elements in struct initializer
chardev.c:328: warning: (near initialization for `Fops')
chardev.c:315: storage size of `Fops' isn't known
make: *** [chardev.o] Error 1
+++ End +++
作者: room 发布时间: 2005-08-25
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28