我的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 构建
- 光盘构建
- 制作../
- 制作