• ORB-SLAM安装过程遇到问题记录整理


    一、ORB-SLAM2

    1.安装 opencv 依赖库时,出现 不能定位 “libjasper-dev”

    解决方法

    sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
    sudo apt update
    sudo apt install libjasper-dev
    
    • 1
    • 2
    • 3

    2. 编译 opencv 遇到 error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]

    请添加图片描述

    解决方法:
    打开报错对应的文件 modules/python/src2/cv2.cpp , 把对应行的 char* 改为 const char*

    3.c++ error: ‘decay_t’ is not a member of ‘std’

    如下图所示:
    在这里插入图片描述
    解决方法:
    修改 ORB_SLAM的 CMAKELIST.txt文件,
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
    修改为 set(CMAKE_CXX_STANDARD 14)
    在这里插入图片描述

    4. /usr/bin/ld: 找不到 -lEigen3::Eigen

    Eigen库不同于一般的库,它只有头文件,没有.so和 .a 二进制库文件
    解决方法:
    CMakeLists.txt中添加find_package(Eigen3 3.3.7 REQUIRED NO_MODULE)
    如下图所示,其中,3.3.7为自己eigen安装版本。
    在这里插入图片描述

    5.error while loading shared libraries: libpango_windowing.so: cannot open shared object file

    运行时,遇到error while loading shared libraries: libpango_windowing.so: cannot open shared object file
    在这里插入图片描述解决方法:
    执行一下如下命令:

    sudo ldconfig
    
    • 1

    补充:
    ldconfig命令是一个在Linux系统上执行的实用程序,用于配置共享库的运行时链接。当在Linux上安装新的共享库文件时,或者在已安装的共享库文件的位置发生变化时,ldconfig命令可以更新系统中的共享库缓存,以便动态链接器能够正确找到和加载共享库。
    ldconfig的主要作用如下:

    • 更新共享库缓存:ldconfig命令会扫描默认的共享库搜索路径(如/etc/ld.so.conf文件中所定义的路径),并将找到的共享库路径添加到缓存中。这样,当应用程序在运行时需要链接共享库时,动态链接器可以快速地找到并加载相应的库。
    • 解决共享库依赖:共享库通常会依赖于其他共享库。ldconfig命令通过查找并加载这些依赖项,解决了应用程序与共享库之间的依赖关系。
    • 管理多个版本的共享库:在某些情况下,系统可能会安装多个版本的同一共享库。ldconfig可以处理这种情况,并根据系统配置文件中的设置选择正确的共享库版本。
    • 配置自定义共享库搜索路径:通过修改/etc/ld.so.conf文件,可以添加自定义的共享库搜索路径。ldconfig命令在执行时会读取该文件,并将其中指定的路径添加到共享库缓存中。

    总之,ldconfig命令用于维护和更新Linux系统中的共享库缓存,以确保应用程序可以正确地找到并链接所需的共享库。

    6. 安装 Pangolin 出错

    安装过程中出现如下图所示错误,
    在这里插入图片描述
    原因分析:Pangolin的安装版本过高,此次报错是因为0.8的版本,重新下载0.5对应的版本即可。

  • 相关阅读:
    自动化测试:电商管理系统元素定位练习
    牛客编程题--必刷101之动态规划(一文彻底了解动态规划)
    File类和IO流的相关面试(二)
    EF Core 数据过滤
    短信的信令过程
    【Python】Java工程师学Python之PyCharm安装详细教程
    java计算机毕业设计web企业人事管理信息系统MyBatis+系统+LW文档+源码+调试部署
    undefined reference to `timersub‘ 错误处理
    奥密克戎 (Omicron) 知多少m?| MedCheExpress
    vue移动端高德地图的使用及实现最简单的地图功能
  • 原文地址:https://blog.csdn.net/qq_38429958/article/details/134046951