Qt+OpenCV在不同ubuntu系统移植时SIGSEGV问题解决

来源:互联网 发布:linux配置hadoop环境 编辑:程序博客网 时间:2024/06/14 13:22

    Ubuntu下,在Qt+OpenCV开发项目,在Label里面显示一幅用cvLoadImage加载的图片,图片格式jpg,在自己电脑上没问题,结果移动到另一台同样Ubuntu&Qt&OpenCV版本的电脑就出现问题:

     Signal received

     The inferior stopped because it received a signal from the Operating System.

     Signal name : SIGSEGV

     Signal meaning : Segmentation fault

    去网上搜了一下,这个算是Qt的经典错误,是出现了空指针,调试后发现是cvLoadImage函数的错误,也就是图片没有读进来,于是按照如下思路解决:

    (1)图片地址,这个显而易见,不同电脑下绝对路径不同,这个错误轻易不会犯吧;

    (2)修改地址后,在Qt里面清理项目,删除编译出来的.o文件,注意,建议不同电脑移动以后,把makefile文件也删除,这个清理工具不会清理,但是之前我遇到过问题就是只清理项目了不管用,删掉makefile重新编译就好了,反正makefile文件Qt可以一块生成,删掉也不麻烦;

    (3)修改完后,还是不可以,真的有点莫名其妙的感觉,因为其他配置都是一样的,后来写一个极其简单的cvLoadImage程序,还是不行,于是我猜测是不是图像格式的问题,又重新生成一幅png格式的图片,结果就行了!这里希望看到的大神帮忙解答一下啊,一台电脑jpg能用,另一台要换成png才能用,这是怎么回事呢?
0 0
原创粉丝点击