ubuntu + opencv + qtcreator 出现无效指针 realloc(): invalid pointer解决方法

 配置的环境

首先提我电脑上所配置的环境是: ubuntu 13.04+opencv 2.4.0 +qtcreator 4.7.2~因为如果是不同的版本会导致出不同的问题,特别是在使用过程中库的调用。

首先提一下opencv 2.4.0 +qtcreator 4.7.2的安装与配置,由于qtcreator中4.8与4.7的库有很大的改动,且4.8以上的qtcreator可以直接在ubuntu 自带的 software center 中直接安装就可以,由于为与旧的程序接轨,不想重新更改旧工程中的库,本人不得不放弃software center 中便捷的安装方法。所以建议新安装的同学们,可以考虑直接在center 里面安装,方便又快捷。

QT用的源是qt-everywhere-opensource-src-4.7.2.tar.gz,安装方法是参考http://www.cppblog.com/dragon/archive/2011/12/15/162155.html ,当然前提是安装了G++。

Opencv用的源是OpenCV-2.4.0.tar.bz2,这些源建议大家直接去官方网上去下载,各种版本就有尽有。不过在安装opencv之前要装很多的依赖库,视频的音频的还有摄像头的。如果没有用到摄像头的话是参考http://blog.sina.com.cn/s/blog_8835a8480100x23h.html,视频/音频这些就可以搞定。

opencv qtcreator 安装完后,在qtcreator新建工程中添加opencv 库

LIBS +=  -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann

INCLUDEPATH += /usr/local/include \
                /usr/local/include/opencv \
                /usr/local/include/opencv2

LIBS += /usr/local/lib/libopencv_highgui.so \
        /usr/local/lib/libopencv_core.so \
        /usr/local/lib/libopencv_imgproc.so

利用测试程序都运行OK

。。。

好久时间过后,运行一个大的程序发现出现一个无效指针 realloc(): invalid pointer的问题:编译输出如下

realloc(): invalid pointer: 0xb6268f54 ***
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(+0x767e2)[0xb5d277e2]
/lib/i386-linux-gnu/libc.so.6(realloc+0x263)[0xb5d2b3e3]
/usr/lib/i386-linux-gnu/libQt5Core.so.5(_ZN9QListData7reallocEi+0x37)[0xb4752567]
/usr/lib/i386-linux-gnu/libQt5Core.so.5(_ZN9QListData6appendEi+0x7c)[0xb475264c]
/usr/lib/i386-linux-gnu/libQt5Core.so.5(_ZN9QListData6appendEv+0x23)[0xb47526d3]
/usr/lib/i386-linux-gnu/libQt5Core.so.5(+0x17f82e)[0xb483282e]
/usr/lib/i386-linux-gnu/libQt5Core.so.5(_Z21qRegisterResourceDataiPKhS0_S0_+0x101)[0xb482f211]
/usr/lib/i386-linux-gnu/libQt5Core.so.5(+0x2a7439)[0xb495a439]
/usr/lib/i386-linux-gnu/libQt5Core.so.5(+0x52d74)[0xb4705d74]
/lib/ld-linux.so.2(+0xf216)[0xb7780216]
/lib/ld-linux.so.2(+0xf2fc)[0xb77802fc]
/lib/ld-linux.so.2(+0x11df)[0xb77721df]
======= Memory map: ========
08048000-081cb000 r-xp 00000000 08:0c 260629     /home/lcmliao/qttest/v3-build-desktop/v3
081cb000-081cc000 r--p 00182000 08:0c 260629     /home/lcmliao/qttest/v3-build-desktop/v3
081cc000-081cd000 rw-p 00183000 08:0c 260629     /home/lcmliao/qttest/v3-build-desktop/v3
09809000-0982a000 rw-p 00000000 00:00 0          [heap]
b200c000-b2013000 rw-p 00000000 00:00 0  
b2013000-b3182000 r-xp 00000000 08:0a 267555     /usr/lib/i386-linux-gnu/libicudata.so.48.1.1
b3182000-b3183000 r--p 0116e000 08:0a 267555     /usr/lib/i386-linux-gnu/libicudata.so.48.1.1
b3183000-b3184000 rw-p 0116f000 08:0a 267555     /usr/lib/i386-linux-gnu/libicudata.so.48.1.1
b3184000-b31a9000 r-xp 00000000 08:0a 786790     /lib/i386-linux-gnu/liblzma.so.5.0.0
b31a9000-b31aa000 r--p 00024000 08:0a 786790     /lib/i386-linux-gnu/liblzma.so.5.0.0
b31aa000-b31ab000 rw-p 00025000 08:0a 786790     /lib/i386-linux-gnu/liblzma.so.5.0.0
b31ab000-b31ac000 rw-p 00000000 00:00 0  
b31ac000-b31b1000 r-xp 00000000 08:0a 266280     /usr/lib/i386-linux-gnu/libXdmcp.so.6.0.0
b31b1000-b31b2000 r--p 00004000 08:0a 266280     /usr/lib/i386-linux-gnu/libXdmcp.so.6.0.0
b31b2000-b31b3000 rw-p 00005000 08:0a 266280     /usr/lib/i386-linux-gnu/libXdmcp.so.6.0.0
b31b3000-b31b5000 r-xp 00000000 08:0a 266269     /usr/lib/i386-linux-gnu/libXau.so.6.0.0
b31b5000-b31b6000 r--p 00001000 08:0a 266269     /usr/lib/i386-linux-gnu/libXau.so.6.0.0
b31b6000-b31b7000 rw-p 00002000 08:0a 266269     /usr/lib/i386-linux-gnu/libXau.so.6.0.0
b31b7000-b31dc000 r-xp 00000000 08:0a 786763     /lib/i386-linux-gnu/libexpat.so.1.6.0
b31dc000-b31de000 r--p 00025000 08:0a 786763     /lib/i386-linux-gnu/libexpat.so.1.6.0
b31de000-b31df000 rw-p 00027000 08:0a 786763     /lib/i386-linux-gnu/libexpat.so.1.6.0
b31df000-b31e3000 r-xp 00000000 08:0a 786891     /lib/i386-linux-gnu/libuuid.so.1.3.0
b31e3000-b31e4000 r--p 00003000 08:0a 786891     /lib/i386-linux-gnu/libuuid.so.1.3.0
b31e4000-b31e5000 rw-p 00004000 08:0a 786891     /lib/i386-linux-gnu/libuuid.so.1.3.0
b31e5000-b31e6000 rw-p 00000000 00:00 0  
b31e6000-b333c000 r-xp 00000000 08:0a 266188     /usr/lib/i386-linux-gnu/libicuuc.so.48.1.1
b333c000-b3346000 r--p 00155000 08:0a 266188     /usr/lib/i386-linux-gnu/libicuuc.so.48.1.1
b3346000-b3347000 rw-p 0015f000 08:0a 266188     /usr/lib/i386-linux-gnu/libicuuc.so.48.1.1
b3347000-b334b000 rw-p 00000000 00:00 0  
b334b000-b3517000 r-xp 0000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值