安装完g2o后发现g2o_viewer并没有被安装,
于是找到了问题,
首先,g2o文件夹下的README.md里有如下说明
### Optional requirements
- suitesparse <http://faculty.cse.tamu.edu/davis/suitesparse.html>
- Qt5 <http://qt-project.org>
- libQGLViewer <http://www.libqglviewer.com>
On Ubuntu / Debian these dependencies are resolved by installing the
following packages.
- libsuitesparse-dev
- qtdeclarative5-dev
- qt5-qmake
- libqglviewer-dev-qt5
所以先安装这些lib
sudo apt-get install libsuitesparse-dev qtdeclarative5-dev qt5-qmake libqglviewer-dev-qt5
然后进入g2o/build下重新编译,然而,遇到了如下报错
libQGLViewer-qt5.so: undefined reference to `qt_version_tag@Qt_5.12’
这个是由于qmake版本问题造成的
看一下系统版本
qmake -v
发现系统的qmake指向了anaconda的lib下面,
然后看下自己安装的qmake版本
/usr/lib/x86_64-linux-gnu/qt5/bin/qmake -v
QMake version 3.1
Using Qt version 5.12.8 in /usr/lib/x86_64-linux-gnu
这才是编译需要用的5.12啊,也就是报错说找不到的那个。
所以,要把系统的路径指定到安装的地方
看一下~/.bashrc下面的PATH,发现确实是指向anaconda的,改为
export PATH="/usr/bin:$PATH"
然后
source ~/.bashrc
又重新进入到g2o/build下重新cmake … 加 make -j4
还是报刚才的错,
这时要把build文件夹清空, 再重新cmake …加 make -j4
看下g2o/bin文件夹下,已经有了g2o_viewer。
运行
cd g2o/bin
./g2o_viewer
解决。