Chinaunix首页 | 论坛 | 博客
  • 博客访问: 285221
  • 博文数量: 49
  • 博客积分: 3083
  • 博客等级: 中校
  • 技术积分: 710
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-27 08:22
文章分类

全部博文(49)

文章存档

2009年(8)

2008年(41)

分类: LINUX

2008-12-30 20:43:29

都说ubuntu的支持相当的强大,我承认,那是因为ubuntu的问题相当多。比如:由于Debian包管理的依赖性问题,导致了eva没有依赖上kdebase,对话框中右键崩溃。

今天在编译skyeye时又报错
/usr/include/bits/fcntl2.h:51: 错误: 调用‘__open_missing_mode’,声明有错误属性:open with O_CREAT in second argument needs 3 arguments
按理说在Fedora 10中都可以编译过的,在ubuntu下应该也没什么问题才对,可是偏偏出现这个问题。赶紧跟踪,首先对比两个版本的/usr/include/bits/fcntl2.h,发现没有区别,那么就是代码的问题了。改代码,报错是在612行

        if(!nf->writebuffer)
         free(nf->writebuffer);
        free(nf);

提示是open有错,但是612行是free,注释掉前两行,居然误报成了free(nf),继续注释掉free(nf),终于,错误给出来了,是在519行的

if ((nf->fdump= open(dev->dump, FILE_FLAG)) < 0)

open在调用的时候只有两个参数,赶紧给加上个0777,代码成了

if ((nf->fdump= open(dev->dump, FILE_FLAG,0777)) < 0)

谢天谢地,终于编译通过了。
阅读(2170) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~