g2o-20160424 版本編譯後 g2o_viewer 啟動崩潰問題
阿新 • • 發佈:2020-08-03
舊版本g2o/cmake_modules/FindQGLViewer.cmake中優先使用QT4
# Need to find both Qt{4,5} and QGLViewer if the QQL support is to be built FIND_PACKAGE(Qt4 COMPONENTS QtCore QtXml QtOpenGL QtGui) IF(NOT Qt4_FOUND) FIND_PACKAGE(Qt5 QUIET COMPONENTS Core Xml OpenGL Gui Widgets) IF(NOT Qt4_FOUND AND NOT Qt5_FOUND) MESSAGE("Qt{4,5} not found. Install it and set Qt{4,5}_DIR accordingly") IF (WIN32) MESSAGE(" In Windows, Qt5_DIR should be something like C:/Qt/5.4/msvc2013_64_opengl/lib/cmake/Qt5") ENDIF() ENDIF() ENDIF()
但是libQGLViewer是使用指令 sudo apt-get install libqglviewer-dev安裝的,它是基於QT5的,所以直接替換了FindQGLViewer.cmake
find_package(Qt5 COMPONENTS Core Xml OpenGL Gui Widgets) if(NOT Qt5_FOUND) message("Qt5 not found. Install it and set Qt5_DIR accordingly") if (WIN32) message(" In Windows, Qt5_DIR should be something like C:/Qt/5.4/msvc2013_64_opengl/lib/cmake/Qt5") endif() endif() find_path(QGLVIEWER_INCLUDE_DIR qglviewer.h /usr/include/QGLViewer /opt/local/include/QGLViewer /usr/local/include/QGLViewer /sw/include/QGLViewer ENV QGLVIEWERROOT ) find_library(QGLVIEWER_LIBRARY_RELEASE NAMES qglviewer QGLViewer qglviewer-qt5 QGLViewer-qt5 PATHS /usr/lib /usr/local/lib /opt/local/lib /sw/lib ENV QGLVIEWERROOT ENV LD_LIBRARY_PATH ENV LIBRARY_PATH PATH_SUFFIXES QGLViewer QGLViewer/release ) find_library(QGLVIEWER_LIBRARY_DEBUG NAMES dqglviewer dQGLViewer dqglviewer-qt5 dQGLViewer-qt5 QGLViewerd2 PATHS /usr/lib /usr/local/lib /opt/local/lib /sw/lib ENV QGLVIEWERROOT ENV LD_LIBRARY_PATH ENV LIBRARY_PATH PATH_SUFFIXES QGLViewer QGLViewer/debug ) if(QGLVIEWER_LIBRARY_RELEASE) if(QGLVIEWER_LIBRARY_DEBUG) set(QGLVIEWER_LIBRARY optimized ${QGLVIEWER_LIBRARY_RELEASE} debug ${QGLVIEWER_LIBRARY_DEBUG}) else() set(QGLVIEWER_LIBRARY ${QGLVIEWER_LIBRARY_RELEASE}) endif() endif() include(FindPackageHandleStandardArgs) find_package_handle_standard_args(QGLVIEWER DEFAULT_MSG QGLVIEWER_INCLUDE_DIR QGLVIEWER_LIBRARY)
或者解除安裝 libqglviewer-dev,安裝libqglviewer-dev-qt4也行