Ubuntu20.04 orb-slam3编译遇到问题

在虚拟机上用Ubuntu 20.04 编译orb-slam3 遇到问题

img

是按照下面的顺序编译,在最后一步make出错,前面都好好的

cd Thirdparty/DBoW2
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j

cd ../../g2o

echo "Configuring and building Thirdparty/g2o ..."

mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j

cd ../../Sophus

echo "Configuring and building Thirdparty/Sophus ..."

mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j

cd ../../../

echo "Uncompress vocabulary ..."

cd Vocabulary
tar -xf ORBvoc.txt.tar.gz
cd ..

echo "Configuring and building ORB_SLAM3 ..."

mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j4



找了一圈,没有找到一样的错误?
这个要怎么解决啊?

没有. configure进行配置???

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/1090379
  • 这篇博客你也可以参考下:Ubuntu20.04安装orb-slam3
  • 以下回答由chatgpt基于相关博客总结生成:

    根据提供的参考资料中的段落7,问题可能是在编译ORB_SLAM3时出现了错误。具体来说,错误是在LocalMapping.cc文件的第628行,存在一个无法匹配的操作符'/'。一个可能的解决方法是修改该行代码。

    1. 打开LocalMapping.cc文件。
    2. 找到第628行,并将下面这行代码:
    x3D = x3D_h.get_minor<3,1>(0,0) / x3D_h(3);
    

    替换为:

    x3D = cv::Matx31f(x3D_h.get_minor<3,1>(0,0)(0) / x3D_h(3), x3D_h.get_minor<3,1>(0,0)(1) / x3D_h(3), x3D_h.get_minor<3,1>(0,0)(2) / x3D_h(3));
    
    1. 保存文件并重新编译ORB_SLAM3。

    如果以上解决方法不能解决问题,请提供更多详细信息,例如完整的错误信息和编译环境等。