g2o安装和使用
安装依赖
sudo apt-get install libeigen3-dev libsuitesparse-dev qtdeclarative5-dev qt5-qmake
下载源码
git clone https://github.com/RainerKuemmerle/g2o.git
开始编译
cd g2o
mkdir build
cd build
cmake ..
make
安装
sudo make install
安装成功之后,运行会出现链接动态库失败的错误。
错误的原因是/usr/local/lib不在系统查找.so文件的路径下。需自行添加路径。
在/etc/ld.so.conf文件中添加/usr/local/lib目录(划掉是因为这样会造成冲突,如果有gtsam库,会导致未知错误)
直接更新缓存即可
sudo ldconfig
使用
将g2o的源文件目录中的camke_module文件夹复制到项目中,然后在项目的CMakeLists.txt中添加引用如下:
########################## g2o ########################################
# 因为g2o不是常用库,要添加它的findg2o.cmake文件
LIST( APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_module )
SET( G2O_ROOT /usr/local/include/g2o )
FIND_PACKAGE( G2O REQUIRED)
# CSparse
FIND_PACKAGE( CSparse REQUIRED)
INCLUDE_DIRECTORIES( ${G2O_INCLUDE_DIR} ${CSPARSE_INCLUDE_DIR} )
SET(G2O_LIBS g2o_cli g2o_ext_freeglut_minimal g2o_simulator g2o_solver_slam2d_linear
g2o_types_icp g2o_types_slam2d g2o_core g2o_interface g2o_solver_csparse
g2o_solver_structure_only g2o_types_sba g2o_types_slam3d g2o_csparse_extension
g2o_opengl_helper g2o_solver_dense g2o_stuff g2o_types_sclam2d g2o_parser g2o_solver_pcg
g2o_types_data g2o_types_sim3 g2o_solver_cholmod cxsparse )
...
target_link(${PROJECT_NAME} ${G2O_LIBS)
########################################################################