zdzhaoyong/Map2DFusion

crash before main function

C8PAN opened this issue · 7 comments

C8PAN commented

After the comman:
./Map2DFusion DataPath=phantom3-village-kfs
I got the following runtime error:
*** Error in `./Map2DFusion': realloc(): invalid pointer: 0x00007f2cfb7b0840 ***
Aborted (core dumped)
This error happens even before the main function is launched. I am not sure how to fix this.
I am using Ubuntu 14.04

Please excute "ldd Map2DFusion" and make sure all libraries are linked with correct version.

C8PAN commented

ldd Map2DFusion:
linux-vdso.so.1 => (0x00007ffe157f5000)
libpi_base.so => ./libs/libpi_base.so (0x00007fac68e79000)
libpi_gui.so => ./libs/libpi_gui.so (0x00007fac68b7f000)
libpi_hardware.so => ./libs/libpi_hardware.so (0x00007fac6892b000)
libopmapwidget.so.1 => ./libs/libopmapwidget.so.1 (0x00007fac6863c000)
libGL.so.1 => /usr/lib/nvidia-367/libGL.so.1 (0x00007fac68373000)
libQtGui.so.4 => /usr/lib/x86_64-linux-gnu/libQtGui.so.4 (0x00007fac676c0000)
libQtCore.so.4 => /usr/lib/x86_64-linux-gnu/libQtCore.so.4 (0x00007fac671db000)
libopencv_core.so.2.4 => /usr/local/lib/libopencv_core.so.2.4 (0x00007fac66c6d000)
libopencv_highgui.so.2.4 => /usr/local/lib/libopencv_highgui.so.2.4 (0x00007fac6696c000)
libopencv_imgproc.so.2.4 => /usr/local/lib/libopencv_imgproc.so.2.4 (0x00007fac66461000)
libopencv_stitching.so.2.4 => /usr/local/lib/libopencv_stitching.so.2.4 (0x00007fac661ef000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fac65fd1000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fac65ccd000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fac659c6000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fac657b0000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fac653eb000)
libQtOpenGL.so.4 => /usr/lib/x86_64-linux-gnu/libQtOpenGL.so.4 (0x00007fac650ec000)
libQGLViewer.so.2 => /usr/lib/x86_64-linux-gnu/libQGLViewer.so.2 (0x00007fac64e57000)
libpi_lua.so => ./libs/libpi_lua.so (0x00007fac64c3c000)
libGLU.so.1 => /usr/lib/x86_64-linux-gnu/libGLU.so.1 (0x00007fac649cd000)
libGLEW.so.1.10 => /usr/lib/x86_64-linux-gnu/libGLEW.so.1.10 (0x00007fac64741000)
libQtSvg.so.4 => /usr/lib/x86_64-linux-gnu/libQtSvg.so.4 (0x00007fac644e9000)
libQtSql.so.4 => /usr/lib/x86_64-linux-gnu/libQtSql.so.4 (0x00007fac642aa000)
libQtNetwork.so.4 => /usr/lib/x86_64-linux-gnu/libQtNetwork.so.4 (0x00007fac63f62000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fac63d5d000)
libGLX.so.0 => /usr/lib/nvidia-367/libGLX.so.0 (0x00007fac63b2c000)
libGLdispatch.so.0 => /usr/lib/nvidia-367/libGLdispatch.so.0 (0x00007fac63843000)
libfontconfig.so.1 => /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007fac63606000)
libaudio.so.2 => /usr/lib/x86_64-linux-gnu/libaudio.so.2 (0x00007fac633ee000)
libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007fac630e6000)
libpng12.so.0 => /lib/x86_64-linux-gnu/libpng12.so.0 (0x00007fac62ebf000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fac62ca6000)
libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007fac62a03000)
libgobject-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007fac627b1000)
libSM.so.6 => /usr/lib/x86_64-linux-gnu/libSM.so.6 (0x00007fac625a9000)
libICE.so.6 => /usr/lib/x86_64-linux-gnu/libICE.so.6 (0x00007fac6238d000)
libXi.so.6 => /usr/lib/x86_64-linux-gnu/libXi.so.6 (0x00007fac6217c000)
libXrender.so.1 => /usr/lib/x86_64-linux-gnu/libXrender.so.1 (0x00007fac61f72000)
libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007fac61d60000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007fac61a2a000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fac61822000)
/lib64/ld-linux-x86-64.so.2 (0x000055e628276000)
libcudart.so.7.5 => /usr/local/cuda-7.5/lib64/libcudart.so.7.5 (0x00007fac615c3000)
libtbb.so.2 => /usr/lib/libtbb.so.2 (0x00007fac6138f000)
libjpeg.so.8 => /usr/lib/x86_64-linux-gnu/libjpeg.so.8 (0x00007fac6113a000)
libjasper.so.1 => /usr/lib/x86_64-linux-gnu/libjasper.so.1 (0x00007fac60ee2000)
libIlmImf.so.6 => /usr/lib/x86_64-linux-gnu/libIlmImf.so.6 (0x00007fac60c33000)
libHalf.so.6 => /usr/lib/x86_64-linux-gnu/libHalf.so.6 (0x00007fac609f0000)
libgstreamer-0.10.so.0 => /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0 (0x00007fac60705000)
libgstvideo-0.10.so.0 => /usr/lib/x86_64-linux-gnu/libgstvideo-0.10.so.0 (0x00007fac604e9000)
libgstapp-0.10.so.0 => /usr/lib/x86_64-linux-gnu/libgstapp-0.10.so.0 (0x00007fac602dd000)
libgstriff-0.10.so.0 => /usr/lib/x86_64-linux-gnu/libgstriff-0.10.so.0 (0x00007fac600cf000)
libgstpbutils-0.10.so.0 => /usr/lib/x86_64-linux-gnu/libgstpbutils-0.10.so.0 (0x00007fac5feab000)
libdc1394.so.22 => /usr/lib/x86_64-linux-gnu/libdc1394.so.22 (0x00007fac5fc37000)
libv4l1.so.0 => /usr/lib/x86_64-linux-gnu/libv4l1.so.0 (0x00007fac5fa30000)
libv4l2.so.0 => /usr/lib/x86_64-linux-gnu/libv4l2.so.0 (0x00007fac5f822000)
libavcodec.so.54 => /usr/lib/x86_64-linux-gnu/libavcodec.so.54 (0x00007fac5eacc000)
libavformat.so.54 => /usr/lib/x86_64-linux-gnu/libavformat.so.54 (0x00007fac5e7a9000)
libavutil.so.52 => /usr/lib/x86_64-linux-gnu/libavutil.so.52 (0x00007fac5e584000)
libswscale.so.2 => /usr/lib/x86_64-linux-gnu/libswscale.so.2 (0x00007fac5e33d000)
libQt5Core.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 (0x00007fac5dc96000)
libQt5Gui.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 (0x00007fac5d649000)
libQt5Widgets.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 (0x00007fac5ce20000)
libQt5Test.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Test.so.5 (0x00007fac5cbf6000)
libQt5OpenGL.so.5 => /usr/lib/x86_64-linux-gnu/libQt5OpenGL.so.5 (0x00007fac5c992000)
libopencv_flann.so.2.4 => /usr/local/lib/libopencv_flann.so.2.4 (0x00007fac5c719000)
libopencv_features2d.so.2.4 => /usr/local/lib/libopencv_features2d.so.2.4 (0x00007fac5c467000)
libopencv_calib3d.so.2.4 => /usr/local/lib/libopencv_calib3d.so.2.4 (0x00007fac5c188000)
libopencv_gpu.so.2.4 => /usr/local/lib/libopencv_gpu.so.2.4 (0x00007fac55f15000)
libopencv_nonfree.so.2.4 => /usr/local/lib/libopencv_nonfree.so.2.4 (0x00007fac55cbd000)
libQtXml.so.4 => /usr/lib/x86_64-linux-gnu/libQtXml.so.4 (0x00007fac55a77000)
liblua.so => ./libs/liblua.so (0x00007fac55849000)
libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007fac5561e000)
libXt.so.6 => /usr/lib/x86_64-linux-gnu/libXt.so.6 (0x00007fac553b8000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007fac551b4000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fac54f75000)
libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6 (0x00007fac54d6d000)
libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007fac54b68000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fac54948000)
libIex.so.6 => /usr/lib/x86_64-linux-gnu/libIex.so.6 (0x00007fac5472a000)
libIlmThread.so.6 => /usr/lib/x86_64-linux-gnu/libIlmThread.so.6 (0x00007fac54523000)
libgmodule-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007fac5431f000)
libxml2.so.2 => /usr/lib/x86_64-linux-gnu/libxml2.so.2 (0x00007fac53fb8000)
libgstbase-0.10.so.0 => /usr/lib/x86_64-linux-gnu/libgstbase-0.10.so.0 (0x00007fac53d63000)
liborc-0.4.so.0 => /usr/lib/x86_64-linux-gnu/liborc-0.4.so.0 (0x00007fac53ae1000)
libgstaudio-0.10.so.0 => /usr/lib/x86_64-linux-gnu/libgstaudio-0.10.so.0 (0x00007fac538a8000)
libgsttag-0.10.so.0 => /usr/lib/x86_64-linux-gnu/libgsttag-0.10.so.0 (0x00007fac53671000)
libraw1394.so.11 => /usr/lib/x86_64-linux-gnu/libraw1394.so.11 (0x00007fac53463000)
libusb-1.0.so.0 => /lib/x86_64-linux-gnu/libusb-1.0.so.0 (0x00007fac5324b000)
libv4lconvert.so.0 => /usr/lib/x86_64-linux-gnu/libv4lconvert.so.0 (0x00007fac52fd2000)
libxvidcore.so.4 => /usr/lib/x86_64-linux-gnu/libxvidcore.so.4 (0x00007fac52c94000)
libx264.so.142 => /usr/lib/x86_64-linux-gnu/libx264.so.142 (0x00007fac528fd000)
libvpx.so.1 => /usr/lib/x86_64-linux-gnu/libvpx.so.1 (0x00007fac5251e000)
libvorbisenc.so.2 => /usr/lib/x86_64-linux-gnu/libvorbisenc.so.2 (0x00007fac5204f000)
libvorbis.so.0 => /usr/lib/x86_64-linux-gnu/libvorbis.so.0 (0x00007fac51e21000)
libvo-amrwbenc.so.0 => /usr/lib/x86_64-linux-gnu/libvo-amrwbenc.so.0 (0x00007fac51c07000)
libvo-aacenc.so.0 => /usr/lib/x86_64-linux-gnu/libvo-aacenc.so.0 (0x00007fac519ea000)
libtheoraenc.so.1 => /usr/lib/x86_64-linux-gnu/libtheoraenc.so.1 (0x00007fac517a9000)
libtheoradec.so.1 => /usr/lib/x86_64-linux-gnu/libtheoradec.so.1 (0x00007fac51590000)
libspeex.so.1 => /usr/lib/x86_64-linux-gnu/libspeex.so.1 (0x00007fac51377000)
libschroedinger-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libschroedinger-1.0.so.0 (0x00007fac510b2000)
libopus.so.0 => /usr/lib/x86_64-linux-gnu/libopus.so.0 (0x00007fac50e6a000)
libopenjpeg.so.2 => /usr/lib/x86_64-linux-gnu/libopenjpeg.so.2 (0x00007fac50c48000)
libopencore-amrwb.so.0 => /usr/lib/x86_64-linux-gnu/libopencore-amrwb.so.0 (0x00007fac50a33000)
libopencore-amrnb.so.0 => /usr/lib/x86_64-linux-gnu/libopencore-amrnb.so.0 (0x00007fac50809000)
libmp3lame.so.0 => /usr/lib/x86_64-linux-gnu/libmp3lame.so.0 (0x00007fac5057c000)
libgsm.so.1 => /usr/lib/x86_64-linux-gnu/libgsm.so.1 (0x00007fac5036d000)
libva.so.1 => /usr/lib/x86_64-linux-gnu/libva.so.1 (0x00007fac50156000)
librtmp.so.0 => /usr/lib/x86_64-linux-gnu/librtmp.so.0 (0x00007fac4ff3b000)
libgnutls.so.26 => /usr/lib/x86_64-linux-gnu/libgnutls.so.26 (0x00007fac4fc7d000)
libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007fac4fa6d000)
libicui18n.so.52 => /usr/lib/x86_64-linux-gnu/libicui18n.so.52 (0x00007fac4f665000)
libicuuc.so.52 => /usr/lib/x86_64-linux-gnu/libicuuc.so.52 (0x00007fac4f2ec000)
libharfbuzz.so.0 => /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007fac4f096000)
libopencv_objdetect.so.2.4 => /usr/local/lib/libopencv_objdetect.so.2.4 (0x00007fac4ee10000)
libnppc.so.7.5 => /usr/local/cuda-7.5/lib64/libnppc.so.7.5 (0x00007fac4eba6000)
libnppi.so.7.5 => /usr/local/cuda-7.5/lib64/libnppi.so.7.5 (0x00007fac4acd5000)
libnpps.so.7.5 => /usr/local/cuda-7.5/lib64/libnpps.so.7.5 (0x00007fac4a4e8000)
libcublas.so.7.5 => /usr/local/cuda-7.5/lib64/libcublas.so.7.5 (0x00007fac48c08000)
libcufft.so.7.5 => /usr/local/cuda-7.5/lib64/libcufft.so.7.5 (0x00007fac41fcd000)
libopencv_ocl.so.2.4 => /usr/local/lib/libopencv_ocl.so.2.4 (0x00007fac41be7000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fac419e1000)
liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007fac417bf000)
libgstinterfaces-0.10.so.0 => /usr/lib/x86_64-linux-gnu/libgstinterfaces-0.10.so.0 (0x00007fac415ac000)
libudev.so.1 => /lib/x86_64-linux-gnu/libudev.so.1 (0x00007fac4139b000)
libogg.so.0 => /usr/lib/x86_64-linux-gnu/libogg.so.0 (0x00007fac41191000)
libgcrypt.so.11 => /lib/x86_64-linux-gnu/libgcrypt.so.11 (0x00007fac40f11000)
libtasn1.so.6 => /usr/lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007fac40cfc000)
libp11-kit.so.0 => /usr/lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007fac40aba000)
libicudata.so.52 => /usr/lib/x86_64-linux-gnu/libicudata.so.52 (0x00007fac3f24d000)
libgraphite2.so.3 => /usr/lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007fac3f026000)
libopencv_ml.so.2.4 => /usr/local/lib/libopencv_ml.so.2.4 (0x00007fac3ed96000)
libcgmanager.so.0 => /lib/x86_64-linux-gnu/libcgmanager.so.0 (0x00007fac3eb7a000)
libnih.so.1 => /lib/x86_64-linux-gnu/libnih.so.1 (0x00007fac3e962000)
libnih-dbus.so.1 => /lib/x86_64-linux-gnu/libnih-dbus.so.1 (0x00007fac3e758000)
libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007fac3e512000)
libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007fac3e30d000)

The crash occurs since Qt5 is linked, Map2DFusion need Qt4 instead of Qt5.

C8PAN commented

OK, I see. Thank you very much.

My error is "Segmentation fault (core dumped)". @C8PAN Do you solve problem? Can you share relevant experience? I made sure opencv use Qt4. But the QT5 is still linked. @zdzhaoyong I look forward to your detailed explanation or update of the source code. Thank you!

I solved it. My experience:
1.ubuntu 16.04
2.compile opencv2.4: In OpenCVFindLibsGUI.cmake, make it linked the qt4.

# if(NOT CMAKE_VERSION VERSION_LESS 2.8.3 AND NOT WITH_QT EQUAL 4)
#   find_package(Qt5Core)
#   find_package(Qt5Gui)
#   find_package(Qt5Widgets)
#   find_package(Qt5Test)
#   find_package(Qt5Concurrent)
#   if(Qt5Core_FOUND AND Qt5Gui_FOUND AND Qt5Widgets_FOUND AND Qt5Test_FOUND AND Qt5Concurrent_FOUND)
#     set(HAVE_QT5 ON)
#     set(HAVE_QT  ON)
#     find_package(Qt5OpenGL)
#     if(Qt5OpenGL_FOUND)
#       set(QT_QTOPENGL_FOUND ON)
#     endif()
#   endif()
# endif()

3.sudo apt-get install libqglviewer2-qt4

4.In LIBS_CONFIG.linux,LIBS_CONFIG.mingw,LIBS_CONFIG.linux, change -lQGLViewer to -lQGLViewer-qt4

  1. export PKG_CONFIG_PATH=(your path)/opencv-2.4.11-install/lib/pkgconfig
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:(your path)/opencv-2.4.11-install/lib

6.make

@KeoChi Hey, there. I got the same questions. Since OpenCV is installed by 'sudo', how can I use the code without compiling OpenCv myself?