• 欢迎浏览“String me = Creater\忠实的资深Linux玩家;”,请文明浏览,理性发言,有侵犯你的权益请邮件我(creater@vip.qq.com).
  • 把任何的失败都当作一次尝试,不要自卑;把所有的成功都想成是一种幸运,不要自傲。
  •    5年前 (2013-05-08)  QT |   4 条评论  19 
    文章评分 0 次,平均分 0.0

    在使用QT5.0.2进行开发的时候,出现多条Cannot create accessible interface for object: QTabBar(0x97c2ca8, name = "qt)。
    搞得很郁闷,严重影响了进度,最初以为是多线程引起的错误,阅读官方文档后,确认线程使用完全正确。
    于是google,百度各种搜,看见很多coder把这个作为一个bug提交给了QT官方,也是各种设置,但是不管用。

    看样子调试还得看自己,最后发现引起问题的是代码中一段函数引起

    int RobotNetEpoll::openEpoll(int Max_Events)  
    {
     maxevents = Max_Events;
      struct rlimit rt;
      rt.rlim_max = rt.rlim_cur = maxevents;
      errno = 0;
      if (setrlimit(RLIMIT_NOFILE, &rt) == -1) 
    	{
            // PRINT_ERR("setrlimit 出错:  %d %s\n", errno, strerror(errno));
    		 return -1;
      }
    	//为类的成员分配空间
      events = new struct epoll_event[maxevents];
    	//创建Epoll描述符epfd
      if ((epfd = epoll_create(maxevents)) < 0)
      {
    		delete [] events;
        return -1;
      }
     return 0;

    events = new struct epoll_event[maxevents];这一句引起错误,难道是QT中不能这样动态分配数组。 Oh my God,改称static const 后解决。

    我觉得:
    编译错误最好解决
    其次就是链接错误
    再其次就是逻辑错误
    再其次就是运行时确定性错误
    最难解决的就是运行时偶发性错误

    当然这个错误属于运行时确定性错误。

     

    除特别注明外,本站所有文章均为String me = "Creater\忠实的资深Linux玩家";原创,转载请注明出处来自http://unix8.net/home.php/1066.html

    关于

    发表评论

    暂无评论

    切换注册

    登录

    忘记密码 ?

    切换登录

    注册

    扫一扫二维码分享