【问题标题】:Adding GTSAM to the project将 GTSAM 添加到项目中
【发布时间】:2021-09-17 01:26:34
【问题描述】:

我正在尝试将 GTSAM 添加到项目中,但它没有找到提升。 我安装了 GTSAM 和 boost 并尝试按照 GTSAM repo 中的示例添加 GTSAM。 我的 CMakeLists:


cmake_minimum_required(VERSION 3.0)
project(project1 CXX)
set(GTSAM_DIR "C:/gtsam/gtsam/build")
find_package(GTSAM)
if(GTSAM_FOUND)  
  message(STATUS "Found GTSAM ${GTSAM_VERSION}")
else()
  message(STATUS "GTSAM Not Found")
endif()

include_directories(${GTSAM_INCLUDE_DIR})
add_executable(project1
  main.cpp
)

target_link_libraries(project1 PRIVATE gtsam)

尝试使用 cmake 对其进行配置后,我收到此错误:

CMake Warning at CMakeLists.txt:9 (find_package):
  Found package configuration file:

    C:/gtsam/gtsam/build/GTSAMConfig.cmake

  but it set GTSAM_FOUND to FALSE so package "GTSAM" is considered to be NOT
  FOUND.  Reason given by package:

  GTSAM could not be found because dependency Boost could not be found.

在安装 GTSAM 期间,我没有遇到 Boost 问题,所以我不确定问题出在哪里。

【问题讨论】:

  • 你是如何构建和安装GTSAM的?如果你给它一个关于 Boost 位置的提示,那么你需要在你的项目中给出同样的提示。

标签: c++ boost cmake


【解决方案1】:

我假设您自己构建了 GTSAM。 尝试像这样扩展您的 CMakeLists.txt:

首先确保你安装了 boost sudp apt install libboost-dev

find_package( Boost REQUIRED )
include_directories(
    ${Boost_INCLUDE_DIRS}
    ${GTSAM_INCLUDE_DIRS}
)

add_executable(project1
  main.cpp
)

target_link_libraries(factor_graph_slam
    ${Boost_LIBRARIES}
    ${GTSAM_LIBRARIES}
)

您可能必须对 Eigen 和 TBB 执行相同的操作,具体取决于您构建 GTSAM 的方式(find_package(Eigen3 REQUIRED)find_package(TBB REQUIRED) 以及添加到包含和链接库)

【讨论】:

    猜你喜欢
    • 2018-09-04
    • 2016-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多