如何在cmake文件中指定包位置?

问题描述

我在Ubuntu 18.04 pc上有同一个库(g2o)的两个版本。其中一个是在ROS工作空间(/ home / riccardo / catkin_ws / src / g2o)中用catkin_make构建的。 另一个位于我要构建的项目的目录中(/ home / myproject / g2o)。 如我所说,我正在尝试使用catkin_build和g2o库的第二个版本构建 myproject 。但是,我发现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++ 但是,我在/ home / user /中没有${CMAKE_PREFIX_INTALL}指定的目录。我不明白我该怎么办...

编辑2

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

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)