参考网站: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。