參考網站:Installation Ubuntu——github
一、安裝所需的系統包
系統環境:Ubuntu14.04系統+indigo版本的ROS
打開終端輸入如下指令:
# Install framework dependencies.
# NOTE: clang-format-3.8 is not available anymore on bionic, install a newer version.
sudo apt install autotools-dev ccache doxygen dh-autoreconf git liblapack-dev libblas-dev libgtest-dev libreadline-dev libssh2-1-dev pylint clang-format-3.8 python-autopep8 python-catkin-tools python-pip python-git python-setuptools python-termcolor python-wstool --yes
sudo pip install requests
二、安裝ccache以加快重建速度
原網站標註的是可選,也即是可裝可不裝,這裏就直接安裝了。
ccache是一種緩存中間構建文件的工具,可以加速相同代碼的重建。
它是一個編譯器緩存。它通過緩存以前的編譯並檢測何時再次執行相同的編譯來加速重新編譯。支持的語言包括C,C ++,Objective-C和Objective-C ++。
參考官方網址:ccache官網
1.安裝工具,在終端輸入如下指令:
sudo apt install -y ccache
echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc
source ~/.bashrc
2.安裝完成之後,進行驗證,輸入如下指令:
echo $PATH
會出現如圖片所示的情況,說明安裝成功了。
3.設置緩存大小
最大 緩存大小設置爲10GB,可以在以下行中進行調整。
輸入下列指令:
ccache --max-size=10G
則會出現:
Set cache size limit to 10.0 Gbytes
4.查看ccache指定的g++和gcc
輸入如下指令,進行查看:
which g++ gcc
則會出現:
/usr/lib/ccache/g++
/usr/lib/ccache/gcc
5.顯示緩存統計信息
輸入如下指令:
ccache -s
會出現:
cache directory /home/lyq/.ccache
cache hit (direct) 0
cache hit (preprocessed) 0
cache miss 0
files in cache 0
cache size 0 Kbytes
max cache size 10.0 Gbytes
6.清空緩存並重置統計信息
輸入如下指令:
ccache -C -z
會出現:
Cleared cache
Statistics cleared
**注意:**ccache僅適用於乾淨的工作區,這是官網說的
三、創建一個catkin工作區
1.創建工作空間,配置編譯環境
打開終端,輸入如下指令:
mkdir -p catkin_maplab/src
cd catkin_maplab
catkin init
catkin config --merge-devel # Necessary for catkin_tools >= 0.4.
catkin config --extend /opt/ros/indigo
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
cd src
2.下載源碼
通過HTTPS克隆(不需要github帳戶),輸入如下指令:
git clone https://github.com/ethz-asl/maplab.git --recursive
git clone https://github.com/ethz-asl/maplab_dependencies --recursive
四、編譯代碼
1.設置linter
這設置了一個linter,用於在提交期間檢查代碼是否符合我們的樣式指南。如果您打算爲maplab做出貢獻,則只有這些步驟是必需的。這一步是用來做github提交代碼檢查的,可以不用設置。
cd catkin_maplab/src/maplab
./tools/linter/init-git-hooks.py
2.編譯maplab工程
打開終端,輸入如下指令
cd catkin_maplab
catkin build maplab
然後,會出現這樣的界面
最後顯示這樣,就說明編譯成功了。
如果沒有成功,有build failed失敗的包,我的第一次編譯就是兩個包編譯失敗了。解決辦法是:
(1)確保電腦能連上網,並且可以登錄google;
(2)刪掉所有工程文件,重新下載源碼進行編譯。
然後等待20分鐘左右就好了,具體時間與電腦性能、網速等相關。
注意:目前我們的 一些依賴項包含多餘的包,這些包不具備所有必需的依賴項。因此編譯失敗這些軟件包,如果你試圖用構建完整的工作區:catkin build。