免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3080 | 回复: 10
打印 上一主题 下一主题

linux设备驱动例子snull编译出错 求助 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-28 17:14 |只看该作者 |倒序浏览
编译命令和错误显示如下

gcc -c snull.c -DMODUOLE -D__KERNEL__ -I/usr/src/linux-2.4.20-8/include -g -o snull.o
snull.c:21:31: linux/moduleparam.h: No such file or directory
In file included from snull.c:40:
/usr/src/linux-2.4.20-8/include/asm/checksum.h: In function `csum_and_copy_to_user':
/usr/src/linux-2.4.20-8/include/asm/checksum.h:186: `VERIFY_WRITE' undeclared (first use in this function)
/usr/src/linux-2.4.20-8/include/asm/checksum.h:186: (Each undeclared identifier
is reported only once
/usr/src/linux-2.4.20-8/include/asm/checksum.h:186: for each function it appears in.)
snull.c: At top level:
snull.c:50: parse error before "int"
snull.c:50: warning: data definition has no type or storage class
snull.c:53: parse error before "int"
snull.c:53: warning: data definition has no type or storage class
snull.c:59: parse error before "int"
snull.c:59: warning: data definition has no type or storage class
snull.c:73: parse error before "int"
snull.c:73: warning: data definition has no type or storage class
snull.c: In function `snull_setup_pool':
snull.c:100: warning: initialization makes pointer from integer without a cast
snull.c: In function `snull_teardown_pool':
snull.c:119: warning: initialization makes pointer from integer without a cast
snull.c: In function `snull_get_tx_buffer':
snull.c:134: warning: initialization makes pointer from integer without a cast
snull.c: In function `snull_release_buffer':
snull.c:153: warning: initialization makes pointer from integer without a cast
snull.c: In function `snull_enqueue_buf':
snull.c:166: warning: initialization makes pointer from integer without a cast
snull.c: In function `snull_dequeue_buf':
snull.c:176: warning: initialization makes pointer from integer without a cast
snull.c: In function `snull_rx_ints':
snull.c:193: warning: initialization makes pointer from integer without a cast
snull.c: In function `snull_rx':
snull.c:256: warning: initialization makes pointer from integer without a cast
snull.c: In function `snull_poll':
snull.c:291: warning: initialization makes pointer from integer without a cast
snull.c: In function `snull_regular_interrupt':
snull.c:351: warning: assignment makes pointer from integer without a cast
snull.c: In function `snull_napi_interrupt':
snull.c:398: warning: assignment makes pointer from integer without a cast
snull.c: In function `snull_hw_tx':
snull.c:482: warning: assignment makes pointer from integer without a cast
snull.c:492: warning: assignment makes pointer from integer without a cast
snull.c: In function `snull_tx':
snull.c:513: warning: initialization makes pointer from integer without a cast
snull.c: In function `snull_tx_timeout':
snull.c:539: warning: initialization makes pointer from integer without a cast
snull.c: In function `snull_stats':
snull.c:567: warning: initialization makes pointer from integer without a cast
snull.c: In function `snull_change_mtu':
snull.c:611: warning: initialization makes pointer from integer without a cast
snull.c: In function `snull_init':
snull.c:671: warning: assignment makes pointer from integer without a cast
snull.c: In function `snull_init_module':
snull.c:715: warning: assignment makes pointer from integer without a cast
snull.c:717: warning: assignment makes pointer from integer without a cast

------------------------------------------------------------------------------------------------------
有跟我一样错误的么???怎么解决呢

论坛徽章:
0
2 [报告]
发表于 2006-03-29 15:07 |只看该作者
linux/moduleparam.h 头文件没找到
到相应的路径找找吧
找到了改下路径就行了

论坛徽章:
0
3 [报告]
发表于 2006-03-29 15:08 |只看该作者
我靠!你注册一周年啊~

论坛徽章:
0
4 [报告]
发表于 2006-03-29 19:56 |只看该作者
如果你现在真的看不懂这是什么地方的错误的话
暂时不要看这本书!

论坛徽章:
0
5 [报告]
发表于 2006-03-30 09:18 |只看该作者
原帖由 jeffshia 于 2006-3-29 19:56 发表
如果你现在真的看不懂这是什么地方的错误的话
暂时不要看这本书!


我觉得你这种看法完全是错误的,刚开始学,当然有不懂的,就是碰到问题解决问题,才能进一步提高,这只是一个小问题,为什么又不要看这本书了,我觉得你说话应该注意点,你也不是从这一步开始的吗?


楼主:如果你身边有比较牛的人,那你就去问问他,这事最直接也是最有效的办法;如果没有,那么你用find命令在/usr/src下查找这个文件,然后把-I对应到相应的include目录就可以了,在/usr/src下面应该有个Linux目录,你最好用那个目录,因为它是一个链接,指向当前系统的源码目录。

你可以试试。

论坛徽章:
0
6 [报告]
发表于 2006-03-30 10:31 |只看该作者
不过我觉得jeffshia说的有点道理,我想他没恶意,只不过多了个惊叹号而已。

确实只是个简单的错误,而ldd又不是很简单的东西,或者说应该先看看apue这样的书

楼主一定已经知道怎么解决了,回这个帖子时就可以随便打岔了,呵呵~

也是一种有一定意义讨论,不算浪费空间

论坛徽章:
0
7 [报告]
发表于 2006-03-30 17:09 |只看该作者

版本的问题

头文件 我肯定已经查过了没有 ,所以才问的啊呵呵
已经解决了,版本的问题 ,程序是ldd3的例子 ,用的是2.6内核心我的是2。4的内核

论坛徽章:
0
8 [报告]
发表于 2006-03-30 18:56 |只看该作者
楼上?
-DMODULE
不是-DMODUOLE

还有,最好从第一页开始看!

论坛徽章:
0
9 [报告]
发表于 2006-03-31 13:55 |只看该作者

很快就解决了 ,但是发现问了问题不会贴就要挨批 ,晕,不回不行了

我下这个例子的时候下成2.6的了 但我的内核版本是2。4。20-8呵呵
以前也编过helloworld之类的 ,尝试过好几个2.4版本的驱动用的lib库没有错的 ,所以就没有考虑lib库的问题 ,后来核对原码发现我的linux中根本找不到module_param ,而是module_parm ,
确实已经解决了 ,但对网友的批评 ,呵呵有一点不同的意见 ,不懂就要学阿 ,不然永远不懂 ,每个人都有这个阶段的 呵呵

    很快就发现问题的所在了 ,俺当初只是认为为什么ldd本身带的原码也有错误 ,并且俺当时认为肯定是俺这边出了问题所以找不到原因才上来问的 。我贴出的是尽量原始的ldd的例子的错误代码 呵呵感谢大家的帮忙 ,俺虽然接触驱动时间不长 ,但基本的错误俺还是会查的 ,只是俺没有及时更新进展所以让大家误会了 ,而且俺发现好像没有办法结贴 ,有点头大了呵呵最近发现不回贴不行了呵呵

    这个是俺得blog,欢迎大家到里面看看 ,我的里面有很多问题都没有解决 ,希望大家给点意见
  http://blowingwind.cublog.cn

论坛徽章:
0
10 [报告]
发表于 2006-03-31 13:56 |只看该作者

-DMODULE是笔误阿

-DMODULE是笔误阿  
呵呵 ,见笑了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP