视觉slam g2o 编译出现 Cmake Error:By not providing “FindG2O.cmake” in CMAKE_MODULE_PATH错误

在学习slam十四讲的时候,成功安装编译了g2o,但是在运行g2o_curve_fitting代码时出现错误,提示如下:

视觉slam g2o 编译出现 Cmake Error:By not providing “FindG2O.cmake” in CMAKE_MODULE_PATH错误_第1张图片

方法一:
这时需要在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,找到后,右键属性,即可看到父文件夹,那就是安装目录了。
视觉slam g2o 编译出现 Cmake Error:By not providing “FindG2O.cmake” in CMAKE_MODULE_PATH错误_第2张图片
改完之后内容为

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
)

你可能感兴趣的:(视觉slam g2o 编译出现 Cmake Error:By not providing “FindG2O.cmake” in CMAKE_MODULE_PATH错误)