整了一下午,百度了好多文件都没好用,最终找到一个文件参考后整出来了,总结如下:
原因是由于同时安装了qt4 和qt5,导致无法定位到共享的目标文件。
错误:
该错误的解决方式:
通过cmake-gui取更改编译配置,更改后如下图:
注意是更改了下图的路径:实际我改的路径是把原来的qt4改成了qt5,下面图中是我编译后截图的,在这之前我卸载了qt4,或许不需要卸载只需更改下面配置也可以;
卸载指令为:sudo apt-get remove qt4-*
全部cmake配置如下图所示:
同时我也更改了FindQGLViewer.cmake文件部分内容:
更改的部分为:可以对比原先该文件内容 只是改了NAMES后面的内容
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
)
有关依赖库libqglviewer的安装可以使用下面网址并参考安装步骤编译安装
http://libqglviewer.com/installUnix.html
因为有文章说不要使用sudo apt-get install libqglviewer-dev安装,不知道为啥。
更改完cmake配置后 到g2o的build文件夹中删除原先编译的文件,然后重新编译:
cmake ..
make
sudo make install
运行g20_viewer时可能会报错无法链接到库 libqglviewer.so:
解决办法运行下面指令:
sudo ldconfig
此时再运行g2o_viewer后就可以正常启动了
qt5的安装:
sudo apt-get install qt5-default qtcreator
问题解决主要参考了下面文章:
https://github.com/RainerKuemmerle/g2o/issues/151
有关g2o的一下其它问题可以参考下面文章:
http://www.cnblogs.com/JingeTU/p/6390924.html
https://blog.csdn.net/sinat_33598258/article/details/74357081