找回密码
 立即注册
收起左侧

SIGABRT和SIGSEGV错误

4
回复
8807
查看
[复制链接]
累计签到:1 天
连续签到:1 天
来源: 2016-3-15 17:33:19 显示全部楼层 |阅读模式
1Qter豆
本人QT菜鸟。。。。
在代码中使用一个别人的动态库
在构造中进行了load动态库,和使用动态库里的方法initial
然后又调用库里一个方法,报错:SIGABRT,Aborted

在析构的时候也报错:SIGSEGV, Segmentation fault


大神们看看,这个是怎么回事呢

附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册
回复

使用道具 举报

累计签到:595 天
连续签到:1 天
2016-3-15 18:53:46 显示全部楼层
估计是你传参不对吧,
回复

使用道具 举报

累计签到:1 天
连续签到:1 天
2016-3-16 08:44:40 显示全部楼层
sywh 发表于 2016-3-15 18:53
估计是你传参不对吧,

析构里的那个参数就一个:之前initial返回的句柄
这个要错也很难啊
回复

使用道具 举报

累计签到:595 天
连续签到:1 天
2016-3-16 09:15:36 显示全部楼层
你又没贴代码,这样让别人怎么猜
回复

使用道具 举报

累计签到:1 天
连续签到:1 天
2016-3-16 10:08:09 显示全部楼层
sywh 发表于 2016-3-16 09:15
你又没贴代码,这样让别人怎么猜

构造里面:
m_li = NULL;
    h = NULL;
    //加载动态库
    //注意库要给路径否则加载不成功,libhello.so放在当前工程的目录下,所以路径为./
    m_li = new QLibrary("/home/kll/workspace/faceTest/libFace_recognition_CNN.so");
    if (!m_li->load())
    {
        qDebug()<<m_li->errorString()<<endl;
        return ;
    }
    if(!m_li->isLoaded())
    {
        qDebug()<<"load failed!"<<endl;
        return ;
    }

    char *config_file = "/home/kll/workspace/faceTest/data/config.yaml";

    //resolve得到库中函数地址
    Initial initial = (Initial)m_li->resolve("Initial_Recognition_Engine");
    if (initial)
    {
         h = initial(config_file);
         if(h == NULL)
         {
             qDebug()<<"initial failed!"<<endl;
             return ;
         }

    }

析构里面:

Release_Engine release = (Release_Engine)m_li->resolve("Release_Engine");
    if (release && h != NULL)
    {
         release(h);
    }
    //卸载库
    m_li->unload();
-------------------------------------------------------
在析构里执行到release(h)就报错了
回复

使用道具 举报

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

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了