0

我的Ubuntu 18.04 电脑上有同一个库 ( g2o ) 的两个版本。一个是catkin_make在 ROS 工作区 (/home/riccardo/catkin_ws/src/g2o) 中构建的。另一个在我正在尝试构建的项目的目录中(/home/myproject/g2o)。正如我所说,我正在尝试使用和 g2o 库的第二个版本构建myproject 。catkin_build但是,我看到catkin_build找到了 g2o 库的第一个版本,即 ROS 工作区中的那个。

我在myproject目录下有一个CMakeLists.txt,我尝试了不同的方法来指定确切的包位置:

  • 首先,我尝试过:

find_package(G2O REQUIRED PATHS ${PROJECT_SOURCE_DIR}/g2o)

在这种情况下,错误如下:

CMake Error at /home/myproject/CMakeLists.txt:28 (find_package):
  Could not find a package configuration file provided by "G2O" with any of
  the following names:

    G2OConfig.cmake
    g2o-config.cmake

  Add the installation prefix of "G2O" to CMAKE_PREFIX_PATH or set "G2O_DIR"
  to a directory containing one of the above files.  If "G2O" provides a
  separate development package or SDK, be sure it has been installed.
  • 然后,我还尝试了:
LIST(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/g2o/cmake_modules)
SET(G2O_ROOT ${PROJECT_SOURCE_DIR}/g2o)
find_package(G2O REQUIRED)

在这种情况下,使用了另一个 g2o 版本。

你能帮我吗?

编辑 1

我认为 Stackoverflow 上有一个相关问题: How to clone, build, and link g2o framework in C++ 但是我没有${CMAKE_PREFIX_INTALL}/home/user/ 中指定的目录。我不明白我必须做什么...

编辑 2

为了构建和安装 g2o 库,我在 g2o 根目录中启动了以下命令:

  • mkdir 构建
  • 光盘构建
  • 制作../
  • 制作
4

0 回答 0