ubuntu16+g2o
步骤:
1)删除本机已经安装的g2o的可执行文件(https://github.com/RainerKuemmerle/g2o):
sudo rm -r /usr/local/lib/libg2o* /usr/local/include/g2o /usr/local/lib/g2o /usr/local/bin/g2o*
2)安装当前下载的g2o文件步骤(https://github.com/gaoxiang12/rgbd-slam-tutorial-gx/blob/master/g2o.zip):
安装依赖库:
sudo apt-get install libeigen3-dev libsuitesparse-dev libqt4-dev qt4-qmake libqglviewer-dev
安装:
cd g2o
mkdir build
cd build
cmake ..
make
sudo make install
3)cmake ..结果(如果报错,要么就是库没有安装合适,要么就是cmakeList.txt文件出错.或其他什么原因,主要是学会看报错内容.):
-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Compiling on Unix
-- Found CHOLMOD: /usr/include/suitesparse
-- Looking for sgemm_
-- Looking for sgemm_ - found
-- A library with BLAS API found.
-- Looking for cheev_
-- Looking for cheev_ - found
-- A library with LAPACK API found.
-- Found CHOLMOD and its dependencies
-- Found CSPARSE: /usr/include/suitesparse
-- Try OpenMP C flag = [-fopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Success
-- Try OpenMP CXX flag = [-fopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Success
-- Found OpenMP: -fopenmp
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libGL.so
-- Compiling with OpenGL support
-- Looking for Q_WS_X11
-- Looking for Q_WS_X11 - found
-- Looking for Q_WS_WIN
-- Looking for Q_WS_WIN - not found
-- Looking for Q_WS_QWS
-- Looking for Q_WS_QWS - not found
-- Looking for Q_WS_MAC
-- Looking for Q_WS_MAC - not found
-- Found Qt4: /usr/bin/qmake (found version "4.8.7")
-- Found QGLVIEWER: /usr/include/QGLViewer
-- Compiling g2o apps
-- Compiling g2o examples
-- Compiling with GCC
-- Found Eigen3: /usr/include/eigen3 (Required is at least version "2.91.0")
-- Configuring done
-- Generating done
-- Build files have been written to: /home/wangle/pcl/rgbd-slam-tutorial-gx-master/g2o/build
4)执行make命令生成可执行文件(这个过程中回存在很多问题需要我们一步一步的来改):
make
错误1---执行在31%时报错:
[ 31%] Building CXX object g2o/types/slam2d/CMakeFiles/types_slam2d.dir/edge_se2_pointxy_bearing.cpp.o
/home/wangle/pcl/rgbd-slam-tutorial-gx-master/g2o/g2o/types/slam2d/edge_se2_pointxy_bearing.cpp: In member function ‘virtual void g2o::EdgeSE2PointXYBearing::initialEstimate(const VertexSet&, g2o::OptimizableGraph::Vertex*)’:
/home/wangle/pcl/rgbd-slam-tutorial-gx-master/g2o/g2o/types/slam2d/edge_se2_pointxy_bearing.cpp:50:52: error: no matching function for call to ‘g2o::SE2::setRotation(Eigen::Rotation2D<double>::Scalar)’
t.setRotation(t.rotation().angle()+_measurement);
^
In file included from /home/wangle/pcl/rgbd-slam-tutorial-gx-master/g2o/g2o/types/slam2d/vertex_se2.h:33:0,
from /home/wangle/pcl/rgbd-sl