1. 程式人生 > >Ubuntu18.04配置ORB-SLAM2過程中的問題

Ubuntu18.04配置ORB-SLAM2過程中的問題

https://www.imooc.com/article/details/id/29136

1. 提示“CMAKE_CXX_COMPILER-NOTFOUND

具體形式:

Check for working CXX compiler: CMAKE_CXX_COMPILER-NOTFOUND 

CMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found.

Please set CMAKE_CXX_COMPILER to a valid compiler path or name.

解決方法:

sudo apt-get install g++
2. 在ubuntu18.04系統上安裝opencv但是在安裝依賴包的過程中,有一個依賴包,libjasper-dev在使用命令

    sudo apt-get install libjaster-dev

提示:無法定位軟體包 libjasper-dev

後來google到解決辦法,複製到這裡

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

成功的解決了問題,其中libjasper1是libjasper-dev的依賴包

3. 注意eigen 本人親測Eigen3.2.10

wget https://bitbucket.org/eigen/eigen/get/3.2.10.tar.bz2
tar -xjf 3.2.10.tar.bz2

改資料夾名字

cd eigen
mkdir build
cd build
cmake ..
make
sudo make install

4. ImportError: No module named catkin_pkg.package

注意Python版本 ros-melodic對應Python3

5. 編譯安裝python3.7時

提示“ModuleNotFoundError: No module named '_ctypes'

解決辦法

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus
sudo apt-get install build-essential libncursesw5-dev libgdbm-dev libc6-dev
sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev
sudo apt-get install libssl-dev openssl
sudo apt-get install libffi-dev

安裝完libffi後在編譯安裝就不報錯了

6. 編譯./build_ros.sh

提示[rosbuild] rospack found package "ORB_SLAM2" at "", but the current   directory is "/home/angelo/ORB_SLAM2/Examples/ROS/ORB_SLAM2".  You should   double-check your ROS_PACKAGE_PATH to ensure that packages are found in the   correct precedence order.

解決辦法:輸入

 sudo ln -s ~/ORB_SLAM2/Examples/ROS/ORB_SLAM2 /opt/ros/<ros版本名>/share/ORB_SLAM2

7. 編譯遇到找不到#include<Eigen/Dense>

解決辦法:進入usr/local/include/eigen3將eigen3中的Eigen檔案遞迴地複製到上一層資料夾(直接放到include):因為在很多程式中include時經常使用#include <Eigen/Dense>而不是使用的#include <eigen3/Eigen/Dense>所以要做下處理,否則一些程式在編譯時會因找不到Eigen/Dense而報錯。

8. 編譯遇到libboost_system.so: 無法新增符號: DSO missing from command line

解決辦法:在Examples/ROS/ORB_SLAM2/Cmakelist.txt 的檔案後面加入兩句話:

target_link_libraries(Stereo boost_system boost_filesystem) 
target_link_libraries(RGBD boost_system boost_filesystem)