Ubuntu16.04编译安装Cartographer 1.0版本
说明
官方文档
由于Ubuntu16.04已经是很老的系统,如果直接按照Cartographer官方安装文档安装会出现代码编译失败的问题,本文给出了解决这些问题的办法。正常情况下执行本文给出的安装方法即可成功安装。
依赖安装
# 这里和官方一致
# Install the required libraries that are available as debs.
sudo apt-get update
sudo apt-get install -y \
clang \
cmake \
g++ \
git \
google-mock \
libboost-all-dev \
libcairo2-dev \
libceres-dev \
libcurl4-openssl-dev \
libeigen3-dev \
libgflags-dev \
libgoogle-glog-dev \
liblua5.2-dev \
libsuitesparse-dev \
lsb-release \
ninja-build \
python3-sphinx \
stow
sudo apt install protobuf-compiler
abseil安装
# abseil安装需要切换版本
git clone https://github.com/abseil/abseil-cpp.git
cd abseil-cpp
git checkout 20200225 # 这里针对本机系统版本做了调整(UBUNTU16.04),否则可能编译不了
mkdir build
cd build
cmake -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DCMAKE_INSTALL_PREFIX=/usr/local/stow/absl \
..
ninja
sudo ninja install
cd /usr/local/stow
sudo stow absl
protobuf安装
# protobuf安装和官方一致
VERSION="v3.4.1"
# Build and install proto3.
git clone https://github.com/google/protobuf.git
cd protobuf
git checkout tags/${VERSION}
mkdir build
cd build
cmake -G Ninja \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DCMAKE_BUILD_TYPE=Release \
-Dprotobuf_BUILD_TESTS=OFF \
../cmake
ninja
sudo ninja install
cartographer安装
# cartographer安装需要切换版本
git clone https://github.com/cartographer-project/cartographer
# Build and install Cartographer.
cd cartographer
git checkout 1.0.0 # 这里特意切换到了老版本,太新的版本会编译失败
mkdir build
cd build
cmake .. -G Ninja
ninja
CTEST_OUTPUT_ON_FAILURE=1 ninja test
sudo ninja install