在学习slam十四讲的时候,成功安装编译了g2o,但是在运行g2o_curve_fitting代码时出现错误,提示如下:
在这里插入图片描述
方法一:
这时需要在cmakelist文件中添加几行代码,添加代码如下:
list(APPEND CMAKE_MODULE_PATH /XXX/g2o/cmake_modules)
set(G2O_ROOT /XXX/g2o)
find_package( G2O REQUIRED )
include_directories(
${G2O_INCLUDE_DIRS}
"/usr/include/eigen3" )
/XXX/g2o 是你的g2o安装目录,如果不知道自己的安装录取,可以在lunix主文件夹中搜索g2o,找到后,右键属性,即可看到父文件夹,那就是安装目录了。
在这里插入图片描述
改完之后内容为
list(APPEND CMAKE_MODULE_PATH /home/linzhiwei/g2o/cmake_modules)
set(G2O_ROOT /home/linzhiwei/g2o)
find_package(G2O REQUIRED)
include_directories(${G2O_INCLUDE_DIRS}
"/usr/include/eigen3" )
方法二:
检查一下你的${PROJECT_SOURCE_DIR}目录下面(就时你build文件夹所在目录)是否含有cmake_modules文件夹,没有的话,添加进来,(在CMAKELIsts.txt中,当屏幕输入: list( APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR} 后会自动显示出当面目录下有没有cmake_modules文件夹),此文件夹下只有一个FindG2O.cmake文件,添加cmake_modules文件夹主要是为了添加进来FindG2O.cmake这个文件。
**
注意:
**在使用自带的cmake_modules文件夹时,使用 find_package( G2O )命令即可,不使用 find_package( G2O REQUIRED )命令,否则会报错。
CMAKELIsts.txt:
list( APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules )
# 寻找G2O
find_package( G2O )
include_directories(
${G2O_INCLUDE_DIRS}
"/usr/include/eigen3"
)
# OpenCV
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_DIRS} )
add_executable( curve_fitting main.cpp )
# 与G2O和OpenCV链接
target_link_libraries( curve_fitting
${OpenCV_LIBS}
g2o_core g2o_stuff
)
来源:CSDN
作者:苏源流
链接:https://blog.csdn.net/KYJL888/article/details/104513927