河北网站seo优化,室内装修工人培训班,更合网站建设制作,海拉尔做网站多少钱文章目录 0. 前言1. MobaXterm软件2. docker操作2.1. 拉一个ubuntu镜像2.2. 修改名字#xff08;可选#xff09;2.3. 删除之前的docker镜像#xff08;可选#xff09; 3. openvslam搭建流程3.1. 起容器3.2. 前置包的安装3.3. 安装Eigen3.4. 安装opencv3.5. 安装DBoW23.6.… 文章目录 0. 前言1. MobaXterm软件2. docker操作2.1. 拉一个ubuntu镜像2.2. 修改名字可选2.3. 删除之前的docker镜像可选 3. openvslam搭建流程3.1. 起容器3.2. 前置包的安装3.3. 安装Eigen3.4. 安装opencv3.5. 安装DBoW23.6. 安装g2o3.7. 安装Pangolin库3.8. 安装yaml-cpp 可选3.9. 安装openvslam3.10. 安装openssh3.11. MobaXterm软件远程连接容器3.12. 运行demo 4. orb_slam3搭建流程4. 1. 起容器4.2. 前置包的安装4.3. 安装Eigen4.4. 安装opencv4.5. 安装Pangolin库4.6. 安装bosst库4.7. 安装DBoW24.8. 安装g2o4.9. 安装Sophus4.10. 解压ORBvoc.txt.tar.gz压缩包4.11. 安装orb_slam34.12. 安装openssh4.13. MobaXterm软件远程连接容器4.14. 运行demo 5. 编译问题5.1 MobaXterm相关问题5.1.1 问题1报错显示 “xclock command not found”5.1.2 问题2报错显示 Error: Cant open this Distplay5.1.3 问题3报错显示 error: XDG RUNTIME DIR not set in environment 5.2 编译问题5.2.1 问题1报错显示 No rule to make target /usr/lib/x86_64-linux-gnu/libjpeg.so, needed by src/libpangolin.so. Stop5.2.2 问题2报错显示 fatal error: openssl/md5.h: No such file or directory5.2.3 问题3报错显示 cannot find -lboost_serialization 5.3. 之前遇到的编译问题5.3.1 问题1报错显示 Could not find the following static Boost libraries5.3.2 问题2报错显示 /usr/bin/ld: cannot find -lboost_system-mt5.3.3 问题3报错显示 //data/casia_mosaic_liyi_linux/src/siftgpu_extractor/SiftGPU/bin/libsiftgpu.so: undefined reference to __cudaRegisterFatBinarylibcudart.so.11.05.3.4 问题4报错显示 //data/casia_mosaic_liyi_linux/src/siftgpu_extractor/SiftGPU/bin/libsiftgpu.so: undefined reference to ilGetIntege5.3.5 问题5报错显示 //data/casia_mosaic_liyi_linux/src/siftgpu_extractor/SiftGPU/bin/libsiftgpu.so: undefined reference to std::__cxx11::basic_ostringstreamchar, std::char_traitschar, std::allocatorchar ::basic_ostringstream()GLIBCXX_3.4.265.3.6 问题6报错显示 //data/casia_mosaic_liyi_linux/src/siftgpu_extractor/SiftGPU/bin/libsiftgpu.so: undefined reference to logGLIBC_2.295.3.7 问题7报错显示 apt-file not found5.3.8 问题8报错显示 ld.so.conf: No such file or directory 0. 前言
最近基于公司的需求开始搭建Slam算法。在搭建Slam算法的过程中我遇到了很多问题。为了方便后续的重复部署以及给读者朋友做一个参考因此我记录了在服务器上通过docker搭建openvslam以及orb_slam3的全部过程并且整理了遇到的编译问题。 本文主要内容如下 第一部分MobaXterm软件 第二部分docker操作 第三部分openvslam搭建流程 第四部分orb_slam3搭建流程 第五部分编译问题 参考博客
githubzm0612名称openvslam-comments作者一点儿也不萌的萌萌开源SLAM框架学习——OpenVSLAM源码解析 第一节 安装和初探openvslam论文链接githubUZ-SLAMLab名称ORB_SLAM3作者抓饼先生Boost笔记 1下载、编译、安装、测试How to fix: fatal error: openssl/opensslv.h: No such file or directory in RedHat 7在Ubuntu上安装C库【视频开发】【计算机视觉】doppia编译之四安装其他库、编译和运行doppia运行应用程序时出现GLIBCXX_3.4.26not found问题wsl2中安装QGC 1. MobaXterm软件
本次部署因为是在远程服务器上无法在命令行窗口显示Slam的定位和建图过程。因此采用带有Xserver的MobaXterm软件。该软件可以通过Xserver服务来可视化服务器上的图形化窗口。
第一步建立你的session 第二步测试可视化显示
输入xclock或者xeyes查看是否可以可视化显示 在可视化窗口时遇到问题可以查看第5章节中是否存在解决方法如果依旧没有解决可以在评论区提出我们一起解决。 2. docker操作
2.1. 拉一个ubuntu镜像 sudo docker pull ubuntu:18.042.2. 修改名字可选
我个人喜欢把镜像重命名一下方便管理。 注意不是把原始镜像重命名而是重新生成一个新的镜像
sudo docker tag f9a80a55f492 liyi_cpp:1.0
# f9a80a55f492 是ubuntu:18.04的镜像编号。
# liyi_cpp:1.0是重命名的名字和版本号。2.3. 删除之前的docker镜像可选
sudo docker rmi ubuntu:18.043. openvslam搭建流程
OpenvSlam的官方仓库已经关闭但是github作者zm0612 已经fork下来可以继续进行安装。 该作者还有一个csdn的博客进行安装说明我就是参考的这个博主的内容进行整理的。 读者朋友也可以参考这个博主的文章 作者一点儿也不萌的萌萌开源SLAM框架学习——OpenVSLAM源码解析 第一节 安装和初探 openvslam的环境包含以下安装包
Eigen用于矩阵运算。g2o 用于优化基于图的非线性误差函数。SuiteSparse: 一组与稀疏矩阵相关的包。DBoW2用于图像检索的词袋图像数据库。yaml-cppyaml文件管理的包。可选OpenCV数字图像处理的包。Pangolin用于可视化显示的包。
这些包我已经提前下好了放在百度云中读者朋友可以自行下载 链接https://pan.baidu.com/s/1wT95r1iJFwyVg8vhPbcGtQ 提取码1234 3.1. 起容器
基于之前拉取的镜像起一个容器。
sudo docker run --name openvslam -v /media/DATA/liyi/project/vscode:/data -p 6790:22 --gpusall -it liyi_cpp:1.0 /bin/bash
# --name 后面是容器名字
# -v 指的是本地目录和容器目录的映射关系
# -p 指的是容器开放的端口的映射
# --gpus 指的是容器可以调用nvidia的gpu。all指的是全部的显卡
# -it 后面跟着镜像的名字和版本号3.2. 前置包的安装
基于基础使用以及依赖库需要提前安装一些包。代码如下
sudo apt update -y
apt upgrade -y --no-install-recommends
# basic dependencies
apt install -y build-essential pkg-config cmake git wget curl unzip vim
# g2o dependencies
apt install -y libatlas-base-dev libsuitesparse-dev
# OpenCV dependencies
apt install -y libgtk-3-dev
apt install -y ffmpeg
apt install -y libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libavresample-dev
# eigen dependencies
apt install -y gfortran
# other dependencies
apt install -y libyaml-cpp-dev libgoogle-glog-dev libgflags-dev
# (if you plan on using PangolinViewer)
# Pangolin dependencies
apt install -y libglew-dev
# 用来读取jpeg图像的包。
apt install -y libjpeg3.3. 安装Eigen
cd /path/to/working/dir(工作路径)
# 版本也可以自己指定。eigen也可以通过我的百度云离线下载好自己解压。
wget -q http://bitbucket.org/eigen/eigen/get/3.3.4.tar.bz2
tar xf 3.3.4.tar.bz2
rm -rf 3.3.4.tar.bz2
cd eigen-eigen-5a0156e40feb
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPERelease -DCMAKE_INSTALL_PREFIX/usr/local ..
make -j4
sudo make install安装好后include文件和lib文件分别在/usr/local/include和/usr/local/lib下。
3.4. 安装opencv
cd /path/to/working/dir
# 版本也可以自己指定。
wget -q https://github.com/opencv/opencv/archive/3.4.0.zip
unzip -q 3.4.0.zip
rm -rf 3.4.0.zip
cd opencv-3.4.0
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPERelease -DCMAKE_INSTALL_PREFIX/usr/local -DENABLE_CXX11ON -DBUILD_DOCSOFF -DBUILD_EXAMPLESOFF -DBUILD_JASPEROFF -DBUILD_OPENEXROFF -DBUILD_PERF_TESTSOFF -DBUILD_TESTSOFF -DWITH_EIGENON -DWITH_FFMPEGON -DWITH_OPENMPON ..
make -j4
sudo make install安装好后include文件和lib文件分别在/usr/local/include和/usr/local/lib下。
3.5. 安装DBoW2
cd /path/to/working/dir
git clone https://github.com/shinsumicco/DBoW2.git
cd DBoW2
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPERelease -DCMAKE_INSTALL_PREFIX/usr/local ..
make -j4
sudo make install安装好后include文件和lib文件分别在/usr/local/include和/usr/local/lib下。
3.6. 安装g2o
cd /path/to/working/dir
# 可以自己在github上体现下载好。
git clone https://github.com/RainerKuemmerle/g2o.git
cd g2o
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPERelease -DCMAKE_INSTALL_PREFIX/usr/local -DCMAKE_CXX_FLAGS-stdc11 -DBUILD_SHARED_LIBSON -DBUILD_UNITTESTSOFF -DBUILD_WITH_MARCH_NATIVEON -DG2O_USE_CHOLMODOFF -DG2O_USE_CSPARSEON -DG2O_USE_OPENGLOFF -DG2O_USE_OPENMPON ..
make -j4
sudo make install安装好后include文件和lib文件分别在/usr/local/include和/usr/local/lib下。
3.7. 安装Pangolin库
cd /path/to/working/dir
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
git checkout ad8b5f83222291c51b4800d5a5873b0e90a0cf81
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPERelease -DCMAKE_INSTALL_PREFIX/usr/local ..
make -j4
sudo make install安装好后include文件和lib文件分别在/usr/local/include和/usr/local/lib下。
3.8. 安装yaml-cpp 可选
执行以下命令
git clone https://github.com/jbeder/yaml-cpp
cd yaml-cpp
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPERelease -DCMAKE_INSTALL_PREFIX/usr/local ..
make -j4
sudo make install3.9. 安装openvslam
DCMAKE_BUILD_TYPE可以根据需求选择Release或者Debug。
cd /path/to/openvslam
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPEDebug -DBUILD_WITH_MARCH_NATIVEON -DUSE_PANGOLIN_VIEWERON -DUSE_SOCKET_PUBLISHEROFF -DUSE_STACK_TRACE_LOGGERON -DBOW_FRAMEWORKDBoW2 -DBUILD_TESTSON ..
make -j43.10. 安装openssh
#下载openssh
apt-get update
apt-get install openssh-server
# 设置root密码然后设置两遍相同的密码之后登陆的时候要用到
passwd
# 修改配置文件
apt-get install vim
vim /etc/ssh/sshd_config
# 注释掉 PermitRootLogin prohibit-password 这一行 添加这一行 PermitRootLogin yes
# 5. 重启ssh服务
service ssh restart
# 或使用
# /etc/init.d/ssh restart# 本机连接ssh
# ssh -p 6789 root0.0.0.0
# 远程访问服务器docker里正在运行的容器
# ssh -p 6790 root192.168.2.833.11. MobaXterm软件远程连接容器
和之前的方法一样配置远程服务器的会话。注意端口是起容器时设置的端口号在上述例子中为6790。 3.12. 运行demo
cd slam编译所在位置/build
./run_euroc_slam -v /data/database/orb_vocab.dbow2 -d /data/database/EuRoC/V1_03_difficult/mav0 -c ../example/euroc/EuRoC_mono.yaml
# -v orb_vocab.dbow2的文件路径。可以在网上下载或者通过我的百度云分享下载。
# -d 数据的所在路径
# -c 相机的配置文件4. orb_slam3搭建流程
orb_slam3的github代码githubUZ-SLAMLab名称ORB_SLAM3 orb_slam不用自己找第三方库代码里面就自带各种三方库。缺一个boost_1_83_0需要自己下载。 openvslam的环境包含以下安装包
Eigen用于矩阵运算。g2o 用于优化基于图的非线性误差函数。Sophus: 这是一个李群的c实现通常用于二维和三维几何问题(即计算机视觉或机器人应用)。DBoW2用于图像检索的词袋图像数据库。OpenCV数字图像处理的包。Pangolin用于可视化显示的包。boostBoost库是为C语言标准库提供扩展的一些C程序库的总称。
搭建流程如下
4. 1. 起容器
sudo docker run --name orb_slam3 -v /media/DATA/liyi/project/vscode:/data -p 6788:22 --gpusall -it liyi_cpp:1.0 /bin/bash
# --name 后面是容器名字
# -v 指的是本地目录和容器目录的映射关系
# -p 指的是容器开放的端口的映射
# --gpus 指的是容器可以调用nvidia的gpu。all指的是全部的显卡
# -it 后面跟着镜像的名字和版本号4.2. 前置包的安装
基于基础使用以及依赖库需要提前安装一些包。代码如下
sudo apt update -y
apt upgrade -y --no-install-recommends
# basic dependencies
apt install -y build-essential pkg-config cmake git wget curl unzip vim
# g2o dependencies
apt install -y libatlas-base-dev libsuitesparse-dev
# OpenCV dependencies
apt install -y libgtk-3-dev
apt install -y ffmpeg
apt install -y libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libavresample-dev
# eigen dependencies
apt install -y gfortran
# other dependencies
apt install -y libyaml-cpp-dev libgoogle-glog-dev libgflags-dev
# (if you plan on using PangolinViewer)
# Pangolin dependencies
apt install -y libglew-dev
# 用来读取jpeg图像的包。
apt install -y libjpeg4.3. 安装Eigen
cd orb_slam3代码所在路径/Thirdparty_add/eigen-git-mirror
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPERelease -DCMAKE_INSTALL_PREFIX/usr/local ..
make -j4
sudo make install4.4. 安装opencv
cd orb_slam3代码所在路径/Thirdparty_add/opencv-4.8.0
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPERelease -DCMAKE_INSTALL_PREFIX/usr/local -DENABLE_CXX11ON -DBUILD_DOCSOFF -DBUILD_EXAMPLESOFF -DBUILD_JASPEROFF -DBUILD_OPENEXROFF -DBUILD_PERF_TESTSOFF -DBUILD_TESTSOFF -DWITH_EIGENON -DWITH_FFMPEGON -DWITH_OPENMPON ..
make -j4
sudo make install4.5. 安装Pangolin库
cd orb_slam3代码所在路径/Thirdparty_add/Pangolin
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPERelease -DCMAKE_INSTALL_PREFIX/usr/local ..
make -j4
sudo make install4.6. 安装bosst库
cd orb_slam3代码所在路径/Thirdparty_add/boost_1_83_0
sh bootstrap.sh
./b2
./b2 --clean
./b2 install参考博客流程作者抓饼先生Boost笔记 1下载、编译、安装、测试
4.7. 安装DBoW2
cd orb_slam3代码所在路径/Thirdparty/DBoW2
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPERelease -DCMAKE_INSTALL_PREFIX/usr/local ..
make -j4
sudo make install4.8. 安装g2o
cd orb_slam3代码所在路径/Thirdparty/g2o
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPERelease -DCMAKE_INSTALL_PREFIX/usr/local -DCMAKE_CXX_FLAGS-stdc11 -DBUILD_SHARED_LIBSON -DBUILD_UNITTESTSOFF -DBUILD_WITH_MARCH_NATIVEON -DG2O_USE_CHOLMODOFF -DG2O_USE_CSPARSEON -DG2O_USE_OPENGLOFF -DG2O_USE_OPENMPON ..
make -j4
sudo make install4.9. 安装Sophus
cd orb_slam3代码所在路径/Thirdparty/Sophus
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPERelease -DCMAKE_INSTALL_PREFIX/usr/local ..
make -j4
make install4.10. 解压ORBvoc.txt.tar.gz压缩包
cd orb_slam3代码所在路径/Vocabulary
tar -xf ORBvoc.txt.tar.gz4.11. 安装orb_slam3
DCMAKE_BUILD_TYPE可以根据需求选择Release或者Debug。
cd orb_slam3代码所在路径
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPERelease
make -j4我的docker环境为 4.12. 安装openssh
#下载openssh
apt-get update
apt-get install openssh-server
# 设置root密码然后设置两遍相同的密码之后登陆的时候要用到
passwd
# 修改配置文件
apt-get install vim
vim /etc/ssh/sshd_config
# 注释掉 PermitRootLogin prohibit-password 这一行 添加这一行 PermitRootLogin yes
# 5. 重启ssh服务
service ssh restart
# 或使用
# /etc/init.d/ssh restart# 本机连接ssh
# ssh -p 6789 root0.0.0.0
# 远程访问服务器docker里正在运行的容器
# ssh -p 6790 root192.168.2.834.13. MobaXterm软件远程连接容器
和之前的方法一样配置远程服务器的会话。注意端口是起容器时设置的端口号在上述例子中为6788。
4.14. 运行demo
cd slam编译所在位置/build
../Examples/Monocular/mono_euroc ../Vocabulary/ORBvoc.txt ../Examples/Monocular/EuRoC.yaml /data/database/EuRoC/V1_03_difficult ../Examples/Monocular/EuRoC_TimeStamps/V103.txt test# 第一个参数是ORBvoc.txt的路径
# 第二个参数是箱子配置参数的路径
# 第三个参数是数据的路径
# 第四个参数是时间戳txt文件的路径
# 第五个轨迹文件名5. 编译问题
5.1 MobaXterm相关问题
5.1.1 问题1报错显示 “xclock command not found” 解决 x11的包没有安装需要通过下属代码进行安装
sudo apt-get update
sudo apt-get install x11-apps5.1.2 问题2报错显示 “Error: Can’t open this Distplay” 解决 这是找不到显示的服务器需要添加服务器的地址和端口号。 首先编辑环境变量
vim ~/.bashrc添加显示服务器地址和端口号
# 例如我的
export DISPLAY192.168.2.136:0.0再刷新环境变量
source ~/.bashrc5.1.3 问题3报错显示 “error: XDG RUNTIME DIR not set in environment”
解决 XDG运行的缓存没有地方存储需要设置存放目录。 首先编辑环境变量
vim ~/.bashrc添加显示服务器地址和端口号
# 例如我的
export XDG_RUNTIME_DIR/tmp/runtime_root再刷新环境变量
source ~/.bashrc5.2 编译问题
5.2.1 问题1报错显示 “No rule to make target ‘/usr/lib/x86_64-linux-gnu/libjpeg.so’, needed by ‘src/libpangolin.so’. Stop”
make[2]: *** No rule to make target /usr/lib/x86_64-linux-gnu/libjpeg.so, needed by src/libpangolin.so. Stop.
CMakeFiles/Makefile2:168: recipe for target src/CMakeFiles/pangolin.dir/all failed
make[1]: *** [src/CMakeFiles/pangolin.dir/all] Error 2
Makefile:151: recipe for target all failed
make: *** [all] Error 2libpangolin.so需要libjpeg.so文件但是libjpeg.so不存在。 解决方法
先查看/usr/lib/x86_64-linux-gnu/libjpeg.so是否存在没有的话则重新下载
apt install -y libjpeg如果存在但是名称不一样。如下图 则可以进行软连接。
ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so.8 /usr/lib/x86_64-linux-gnu/libjpeg.so
# 第一个是源文件。
# 第二个是软连接生成的文件。其他包也同理
5.2.2 问题2报错显示 “fatal error: openssl/md5.h: No such file or directory” 没有下载openssl 解决方法
sudo apt-get install libssl-dev解决方法引用自How to fix: fatal error: openssl/opensslv.h: No such file or directory in RedHat 7
5.2.3 问题3报错显示 “cannot find -lboost_serialization” 该docker没有lboost_serialization库需要下载boost库。 解决方法 之前文章中介绍过boost库的下载方法。如下
cd orb_slam3代码所在路径/Thirdparty_add/boost_1_83_0
sh bootstrap.sh
./b2
./b2 --clean
./b2 install解决方法引用自作者抓饼先生Boost笔记 1下载、编译、安装、测试
5.3. 之前遇到的编译问题
我之前编译siftgpu遇到的问题和本文章相关不大只是总结在这方便我后续查看。
5.3.1 问题1报错显示 “Could not find the following static Boost libraries”
Could not find the following static Boost librariesboost_systemboost_filesystemboost_threadboost_date_timeboost_chronoboost_regexboost_serializationboost_program_options解决方法
apt install libboost-all-dev5.3.2 问题2报错显示 “/usr/bin/ld: cannot find -lboost_system-mt”
/usr/bin/ld: cannot find -lboost_program_options-mt
/usr/bin/ld: cannot find -lboost_filesystem-mt
/usr/bin/ld: cannot find -lboost_system-mt
/usr/bin/ld: cannot find -lboost_thread-mt这里出现错误的原因是boost库链接出错这时候我们需要修改CMakeList.txt文件这里我就直接把CMakeList.txt贴出来修改的地方做过注释。 解决方法 【视频开发】【计算机视觉】doppia编译之四安装其他库、编译和运行doppia 在错误四
5.3.3 问题3报错显示 “//data/casia_mosaic_liyi_linux/src/siftgpu_extractor/SiftGPU/bin/libsiftgpu.so: undefined reference to __cudaRegisterFatBinarylibcudart.so.11.0”
解决方法: 没有libcudart.so.11.0请安装cuda并配置cuda环境。
5.3.4 问题4报错显示 “//data/casia_mosaic_liyi_linux/src/siftgpu_extractor/SiftGPU/bin/libsiftgpu.so: undefined reference to ilGetIntege”
undefined reference to ilInit
undefined reference to ilGenImages
undefined reference to ilBindImageundefined reference to ilLoadImage
undefined reference to ilGetInteger
undefined reference to ilGetInteger
undefined reference to ilGetInteger
undefined reference to ilGetInteger解决方法 安装 devil库 在Ubuntu上安装C库
sudo apt-get install libdevil1c2 libdevil-dev
apt-file show libdevil1c2libdevil1c2: /usr/bin/ilur libdevil1c2: /usr/lib/libIL.so.1 libdevil1c2: /usr/lib/libIL.so.1.1.0 libdevil1c2: /usr/lib/libILU.so.1 libdevil1c2: /usr/lib/libILU.so.1.1.0 libdevil1c2: /usr/lib/libILUT.so.1 libdevil1c2: /usr/lib/libILUT.so.1.1.0 libdevil1c2: /usr/share/doc/libdevil1c2/changelog.Debian.gz libdevil1c2: /usr/share/doc/libdevil1c2/copyright libdevil1c2: /usr/share/lintian/overrides/libdevil1c2\
5.3.5 问题5报错显示 “//data/casia_mosaic_liyi_linux/src/siftgpu_extractor/SiftGPU/bin/libsiftgpu.so: undefined reference to std::__cxx11::basic_ostringstreamchar, std::char_traits, std::allocator ::basic_ostringstream()GLIBCXX_3.4.26”
解决 libstdc.so.6.0.25中不包含GLIBCXX的3.4.26版本因此需要下载libstdc.so.6.0.26然后重新软连接到libstdc.so.6 一般libstdc都在/usr/lib64中但是我在docker中为/usr/lib/x86_64-linux-gnu 参考运行应用程序时出现GLIBCXX_3.4.26not found问题
5.3.6 问题6报错显示 “//data/casia_mosaic_liyi_linux/src/siftgpu_extractor/SiftGPU/bin/libsiftgpu.so: undefined reference to logGLIBC_2.29”
解决方法 检查/usr/lib/x86_64-linux-gnu/libc.so看看是否存在或者兼容GLIBC_2.29. 检查命令
strings /lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC_没有lib.so则安装glibc-2.29并进行安装和编译
cd glibc-build
../glibc-2.29/configure --prefix/usr/lib/glibc-2.29
make -j8
make install然后进行软连接
ln -sf /usr/lib/glibc-2.29/lib/libm-2.29.so libm.so.6参考博客wsl2中安装QGC 缺失bison和gawk或者bison和gawk的版本过低。 解决办法 更新文件 gawk 和 bison 命令为 sudo apt-get install gawk sudo apt-get install bison 然后libsiftgpu.so的重新编译生成。在SiftGPU下进行编译。 用ldd /bin/libsiftgpu.so来进行测试。
参考博客SiftGPU在Ubuntu和Windows下的编译与使用
5.3.7 问题7报错显示 “apt-file not found”
解决
sudo apt-get update
sudo apt-get install apt-file
sudo apt-file update5.3.8 问题8报错显示 “ld.so.conf: No such file or directory”
在指定位置建立ld.so.conf
mkdir -p $prefix/etc
touch $prefix/etc/ld.so.conf参考博客ld.so.conf: No such file or directory