SLAM十四讲第二版ch6的未定义的引用问题

2023-05-16

在使用slam十四讲第二版做题的时候发现,ch6编译问题,特此记录如下。

make时遇到问题如下:

对‘g2o::OptimizableGraph::Vertex::clone() const’未定义的引用
对‘g2o::OptimizableGraph::Edge::clone() const’未定义的引用
CMakeFiles/g2oCurveFitting.dir/build.make:143: recipe for target 'g2oCurveFitting' failed
make[2]: *** [g2oCurveFitting] Error 1

发现g20的问题,所以我们在FindG20.cmake文件中作如下修改:

建议不要直接复制粘贴,对比后复制进入。

​
# Find the header files

FIND_PATH(G2O_INCLUDE_DIRS g2o/core/base_vertex.h
  ${G2O_ROOT}/include
  $ENV{G2O_ROOT}/include
  $ENV{G2O_ROOT}
  /usr/local/include
  /usr/include
  /opt/local/include
  /sw/local/include
  /sw/include
  NO_DEFAULT_PATH
  )

# Macro to unify finding both the debug and release versions of the
# libraries; this is adapted from the OpenSceneGraph FIND_LIBRARY
# macro.

MACRO(FIND_G2O_LIBRARY MYLIBRARY MYLIBRARYNAME)

  FIND_LIBRARY("${MYLIBRARY}_DEBUG"
    NAMES "g2o_${MYLIBRARYNAME}_d"
    PATHS
    ${G2O_ROOT}/lib/Debug
    ${G2O_ROOT}/lib
    $ENV{G2O_ROOT}/lib/Debug
    $ENV{G2O_ROOT}/lib
    NO_DEFAULT_PATH
    )

  FIND_LIBRARY("${MYLIBRARY}_DEBUG"
    NAMES "g2o_${MYLIBRARYNAME}_d"
    PATHS
    ~/Library/Frameworks
    /Library/Frameworks
    /usr/local/lib
    /usr/local/lib64
    /usr/lib
    /usr/lib64
    /opt/local/lib
    /sw/local/lib
    /sw/lib
    NO_DEFAULT_PATH
    )
  
  FIND_LIBRARY(${MYLIBRARY}
    NAMES "g2o_${MYLIBRARYNAME}"
    PATHS
    ${G2O_ROOT}/lib/Release
    ${G2O_ROOT}/lib
    $ENV{G2O_ROOT}/lib/Release
    $ENV{G2O_ROOT}/lib
    NO_DEFAULT_PATH
    )

  FIND_LIBRARY(${MYLIBRARY}
    NAMES "g2o_${MYLIBRARYNAME}"
    PATHS
    ~/Library/Frameworks
    /Library/Frameworks
    /usr/local/lib
    /usr/local/lib64
    /usr/lib
    /usr/lib64
    /opt/local/lib
    /sw/local/lib
    /sw/lib
    NO_DEFAULT_PATH
    )

​

然后再make编译,可以通过。

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SLAM十四讲第二版ch6的未定义的引用问题 的相关文章

  • PX4(PIXHAWK)源码开发人员文档(三)——进程间通讯的开发者指南

    进程 应用之间的通信 xff08 例如将传感器应用的传感器数据发送到姿态滤波应用 xff09 是 PX4 软件架构的关键部分 进程 xff08 通常又被叫做节点 xff08 node xff09 xff09 通过命名为总线 xff08 bu
  • Ubuntu21.10配置Docker CE 镜像

    Docker CE 是免费的 Docker 产品的新名称 xff0c Docker CE 包含了完整的 Docker 平台 xff0c 非常适合开发人员和运维团队构建容器 APP 参考阿里云官方镜像站 xff1a 阿里巴巴开源镜像站 OPS
  • PX4源码开发人员文档(四)——创建后台程序(应用)

    在 Unix 和其他多任务计算机操作系统中 xff0c 后台程序是指 xff0c 作为后台进程运行的计算机 xff0c 而不是由交互用户直接控制 后台程序概念的主要好处是 xff0c 后台程序可以直接启动 xff0c 而不需要将其发送到精确
  • PHP获取今天、本周、今年开始时间戳

    PHP获取今天 本周 今年开始时间戳 注 xff1a 以下代码在php8 0上测试通过 xff0c 其它版本的php理论上也是可行的 span class token delimiter important lt php span span
  • 搬砖过程中常用的英文单词(代码命名规则)

    注册register用户名 用户userName user密码password pwd路径path成绩score服务器host图片img字符串str数字num
  • CAN 邮箱的理解

    对于CAN邮箱的理解 xff1a CAN总线有接收邮箱和发送邮箱 xff1a 发送邮箱 是用于CAN总线数据发送的 xff0c 总共有3个 xff0c 并且存在优先级关系 优先级越高表示其里面的数据会被优先发送 数据在发送前都会被送到优先级
  • 变量名前为什么要加_下划线

    简单来说 xff0c 含有两个下划线和下划线 43 大写字母开头的标识符是给编译器和标准库用的 xff0c 你不能用 xff0c 否则后果自负 一个下划线开头的随便用 xff0c 只要你不嫌麻烦 而我们一般在前面加 表示私有变量 一般来说
  • 23 张图细讲使用 Devtron 简化 K8S 中应用开发

    23 张图细讲使用 Devtron 简化 K8S 中应用开发 在本文中 xff0c 您将学习如何在多集群环境中使用 Devtron 在 K8S 上进行应用开发 https devtron ai Devtron 附带用于构建 部署和管理微服务
  • 企业级网关 Kong 部署 Spring Boot 项目实战

    企业级网关 Kong 部署 Spring Boot 项目实战 1 概述 在本教程中 xff0c 我们将演示使用 Kong Ingress Controller KIC 在 Kubernetes 上部署 Spring Boot 应用程序 通过
  • Linux Mint(Ubuntu)上 安装 效率神器 utools

    我的 Windows 系统的笔记本只有 256G 固态 xff0c 磁盘已经快用满了 xff0c 最近想装个 Linux 玩玩 xff0c 选择了 Linux Mint xff0c 然后就在闲置的移动硬盘上安装了 Linux Mint 21
  • 图文轻松说透 K8S Pod 各种驱逐场景

    图文轻松说透 K8S Pod 各种驱逐场景 Kubernetes Pod 被驱逐是什么意思 xff1f 它们被终止 xff0c 通常是没有足够资源的结果 但是为什么会这样呢 xff1f 驱逐是指派给节点的Pod 被终止的过程 Kuberne
  • CKA、CKAD、CKS、LFCS、LFCA、LFCE 60$ 刀优惠券

    CKA CKAD CKS LFCS LFCA LFCE 60 刀优惠券 CKA 地址 xff1a https trainingportal linuxfoundation org courses certified kubernetes a
  • 配置Docker CE 镜像

    Docker CE 是免费的 Docker 产品的新名称 xff0c Docker CE 包含了完整的 Docker 平台 xff0c 非常适合开发人员和运维团队构建容器 APP 参考阿里云官方镜像站 xff1a 阿里巴巴开源镜像站 OPS
  • ssh 连接错误 Too many authentication failures 解决方法

    ssh 连接错误 Too many authentication failures 解决方法 背景 有时候使用 ssh 登录 或者 git ssh 方式连接 时会遇到 xff1a Too many authentication failur
  • 报错解决 REMOTE HOST IDENTIFICATION HAS CHANGED

    REMOTE HOST IDENTIFICATION HAS CHANGED 报错 span class hljs meta style color 61aeee line height 26px span span class bash
  • 使用 Helm Cli 将 chart 推送到 Harbor

    使用 Helm Cli 将 chart 推送到 Harbor 背景问题 努力寻找适用于特定版本的 Harbor 和 Helm 的文档 我尝试添加我的仓库 xff08 repo xff09 helm repo span class token
  • 修改 Git 已经提交记录的 用户名 和邮箱

    修改 Git 已经提交记录的 用户名 和邮箱 有关 Git 和版本控制的常见问题 如何更改提交的作者姓名 电子邮件 xff1f 在我们进入解决方案之前 xff0c 让我们找出您到底想要完成什么 xff1a 在提交之前更改作者信息在提交后更改
  • Go 中模拟 Kubernetes 客户端进行单元测试

    是的 xff0c 我们可以模仿 K8s Client xff01 编写单元测试一直是开发人员的痛苦 这样做的主要原因是 xff0c 通常 xff0c 单元测试 xff08 功能单元测试 xff09 不得使用应用程序的任何物理组件 运行实例
  • Kubernetes 1.26 中的删除、弃用和主要更改

    Kubernetes 1 26 中的删除 弃用和主要更改 变化是 Kubernetes 生命周期不可或缺的一部分 xff1a 随着 Kubernetes 的成长和成熟 xff0c 功能可能会被弃用 删除或替换为项目健康的改进 对于 Kube
  • 提高 K8S 容器运行时的可观察性最佳方法之一

    当谈到云原生可观察性时 xff0c 可能每个人都会提到OpenTelemetry OTEL xff0c 因为社区需要依赖标准来将所有集群组件开发指向到同一方向 OpenTelemetry 使我们能够将日志 指标 xff08 metrics

随机推荐