打印

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

[复制链接]
2199|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huntington|  楼主 | 2007-10-12 16:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在学习阿南斑竹的linux入门过程中,编译简单字符驱动程序时出现了如下错误,网上找了好久,没找到原因,不知道是不是内核版本问题,我的内核是2.4.20-8的,从前面的操作来看,似乎和阿南版主的是一个版本的

$gcc -O2 -DMODULE -D__KERNEL__  -I/usr/src/linux-2.4.20-8/include -c 
CharDriver.c
CharDriver.c:22: warning: initialization from incompatible pointer type
CharDriver.c: In function `device_read':
CharDriver.c:50: `VERIFY_WRITE' undeclared (first use in this function)
CharDriver.c:50: (Each undeclared identifier is reported only once
CharDriver.c:50: for each function it appears in.)
make: *** [CharDriver.O] Error 1

高手给解决一下,谢谢!

相关帖子

沙发
阿南| | 2007-10-12 18:58 | 只看该作者

VERIFY_WRITE undeclared

搜一下它在那个头文件中定义的,把它包含进来试试

使用特权

评论回复
板凳
huntington|  楼主 | 2007-10-12 19:45 | 只看该作者

解决方法与遗留问题

用 #grep VERIFY_WRITE -r /usr/src/linux-2.4/include/*得出以下信息:
/usr/src/linux-2.4/include/asm/uaccess.h:#define VERIFY_WRITE 1
将该文件包含以后编译通过,但是有个警告:
CharDriver.c:25: warning: initialization from incompatible pointer type

而第25行是
struct file_operations tdd_fops={
        read:device_read,
        open:device_open,
        release:device_release,                      //这就是第25行
};

仍然看不出有什么错误~~~~~~该如何解决呢?

使用特权

评论回复
地板
huntington|  楼主 | 2007-10-12 19:51 | 只看该作者

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

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

57

主题

501

帖子

0

粉丝