阿南版主的linux简单字符驱动程序编译通不过

[复制链接]
3162|3
 楼主| huntington 发表于 2007-10-12 16:18 | 显示全部楼层 |阅读模式
在学习阿南斑竹的linux入门过程中,编译简单字符驱动程序时出现了如下错误,网上找了好久,没找到原因,不知道是不是内核版本问题,我的内核是2.4.20-8的,从前面的操作来看,似乎和阿南版主的是一个版本的<br /><br />$gcc&nbsp;-O2&nbsp;-DMODULE&nbsp;-D__KERNEL__&nbsp;&nbsp;-I/usr/src/linux-2.4.20-8/include&nbsp;-c&nbsp;<br />CharDriver.c<br />CharDriver.c:22:&nbsp;warning:&nbsp;initialization&nbsp;from&nbsp;incompatible&nbsp;pointer&nbsp;type<br />CharDriver.c:&nbsp;In&nbsp;function&nbsp;`device_read':<br />CharDriver.c:50:&nbsp;`VERIFY_WRITE'&nbsp;undeclared&nbsp;(first&nbsp;use&nbsp;in&nbsp;this&nbsp;function)<br />CharDriver.c:50:&nbsp;(Each&nbsp;undeclared&nbsp;identifier&nbsp;is&nbsp;reported&nbsp;only&nbsp;once<br />CharDriver.c:50:&nbsp;for&nbsp;each&nbsp;function&nbsp;it&nbsp;appears&nbsp;in.)<br />make:&nbsp;***&nbsp;[CharDriver.O]&nbsp;Error&nbsp;1<br /><br />高手给解决一下,谢谢!<br />
阿南 发表于 2007-10-12 18:58 | 显示全部楼层

VERIFY_WRITE undeclared

搜一下它在那个头文件中定义的,把它包含进来试试
 楼主| huntington 发表于 2007-10-12 19:45 | 显示全部楼层

解决方法与遗留问题

用&nbsp;#grep&nbsp;VERIFY_WRITE&nbsp;-r&nbsp;/usr/src/linux-2.4/include/*得出以下信息:<br />/usr/src/linux-2.4/include/asm/uaccess.h:#define&nbsp;VERIFY_WRITE&nbsp;1<br />将该文件包含以后编译通过,但是有个警告:<br />CharDriver.c:25:&nbsp;warning:&nbsp;initialization&nbsp;from&nbsp;incompatible&nbsp;pointer&nbsp;type<br /><br />而第25行是<br />struct&nbsp;file_operations&nbsp;tdd_fops={<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;read:device_read,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;open:device_open,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;release:device_release,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//这就是第25行<br />};<br /><br />仍然看不出有什么错误~~~~~~该如何解决呢?
 楼主| huntington 发表于 2007-10-12 19:51 | 显示全部楼层

结果是正确的,但是有警告

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

本版积分规则

57

主题

500

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部