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)