ORB-SLAM2环境配置中遇到的问题(持续更新篇)

ORB-SLAM2环境配置中遇到的问题

基本的ORB-SLAM2的配置可以参考该文章:
Ubuntu20.04配置ORBSLAM2并运行

然后在配置环境过程中遇到了几个问题:

问题一:Cere库与Eigen库的冲突问题

因为电脑上之前装了 Eigen3.3.7 的库,后面在安装 Cere 库的时候,起初没什么问题,Cere 库的编译也很好。但是后面在 ORB-SLAM2的 CMakelist.txt 中报错找不到 CUDA::cublas ,当时以为是链接库有问题,后面发现是 Eigen 库的版本和 Cere 库的版本不一样。
当时电脑上 Cere 库的版本是2.0.0 的,后面把 Eigen 库版本换成 3.4.0 问题就解决了,不再报 Cere::ceres 找不到 CUDA::cublas的问题。

问题二:Pangolin库与Eigen库的冲突问题

Pangolin could not be found because dependency Eigen3 could not be found

网上其实有这部分的解释,说因为 Pangolin 里面的 ffmpeg 文件需要换,版本不对,后面也就换成了3.1.0版本的 ffmpeg。问题也就解决了。过程如下:

  1. 下载FFmpeg源代码:

    wget https://ffmpeg.org/releases/ffmpeg-3.1.tar.gz
    
  2. 解压源代码包:

    tar -xf ffmpeg-3.1.tar.gz
    
  3. 进入解压后的目录:

    cd ffmpeg-3.1/
    
  4. 安装编译所需的依赖库:

    sudo apt-get install build-essential yasm
    

    这将安装编译所需的基本工具和YASM汇编器。

  5. 配置和编译FFmpeg:

    ./configure --enable-shared
    make
    

    --enable-shared 参数是可选的,用于编译共享库。你可以根据需要进行调整。

  6. 安装编译好的FFmpeg:

    sudo make install
    

    这将安装编译好的FFmpeg程序和库文件。

  7. 验证安装:

    ffmpeg -version
    

运行此命令可以查看安装的FFmpeg版本信息。但是如果在运行验证安装时报错说:

ffmpeg: error while loading shared libraries: libavdevice.so.57: cannot open shared object file: No such file or directory

那么可以运行一下

sudo ldconfig

然后再运行验证安装的命令就可以了。

ffmpeg version 3.1 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
configuration: --enable-shared
libavutil      55. 27.100 / 55. 27.100
libavcodec     57. 48.101 / 57. 48.101
libavformat    57. 40.101 / 57. 40.101
libavdevice    57.  0.101 / 57.  0.101
libavfilter     6. 46.102 /  6. 46.102
libswscale      4.  1.100 /  4.  1.100
libswresample   2.  1.100 /  2.  1.100

猜你喜欢

转载自blog.csdn.net/weixin_52303102/article/details/132296078