Ubuntu24.04编译ORB_SLAM的一系列报错解决
Ubuntu24.04编译ORB_SLAM的一系列报错解决
decay_t报错
报错信息:error: ‘decay_t’ is not a member of ‘std’;did you mean ‘decay’
将CMakeLists.txt中第17行的c++标准修改为c++14即可:
修改前:
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
修改后:
CHECK_CXX_COMPILER_FLAG("-std=c++14" COMPILER_SUPPORTS_CXX11)
Pangolin报错
报错信息:gl.hpp:348:5: error: ‘glCopyImageSubDataNV’ was not declared in this scope
gl.hpp:522:9: error: ‘glDeleteRenderbuffersEXT’ was not declared in this scope
诸如此类的错误。
这是由于Pangolin版本过高造成的。应编译v0.6版。对于已经运行过sudo make install
的目录,首先运行sudo make uninstall
,然后将源码版本更改为0.6,再重新编译。完整的命令如下:
cd ORB_SLAM3
cd build
sudo make uninstall
cd ..
git checkout v0.6
rm -r build
mkdir build
cd build
cmake ..
make
sudo make install
-lboost-serialization -lcrypto选项报错
原因是系统中找不到boost-serialization和ssl库。运行下面命令安装:
sudo apt-get install libboost-all-dev libssl-dev
安装后,再次运行./build.sh即可。