mrpt基础篇(二)——编译

前言:
阅读这篇文章我能学到什么?
   这篇文章介绍如何将MRPT仓库clone下载到本地编译,以及如何运行到个人的项目中编译

1 编译开源仓库

  本篇文章的ubuntu环境是22.04 LST版本。

1.1 克隆仓库

  将 MRPT开源代码 克隆到本地。

1
git clone https://github.com/MRPT/mrpt.git

  mrpt引用了很多子仓库,执行以下指令更新。

1
git submodule update --init --recursive

1.2 安装cmake和gcc

  官网对mrpt v2.10.0版本的要求要求如下。

tool.png

  安装gcc,官方要求gcc版本大于等于7,这里安装版本12。
  首次使用应先更新apt,尤其使用的是docker跑纯净的linux系统。

1
2
apt update
apt upgrade

  官方指定版本是大于等于cmake v3.8以上,我们安装camke v3.22.* ,执行以下指令。

1
apt install cmake=3.22.*

  安装完成后执行以下指令查看版本信息,显示版本信息则证明安装成功。

1
cmake --version

cmake_ver.png

  安装cmake会自动按照其依赖安装对应的gcc版本,并将该版本设置为默认gcc版本,建议使用默认安装的版本,这样依赖兼容最好,自己随意搭配可能会出现异常问题。
  输入以下指令查看gcc版本。

1
gcc --version

gcc_ver.png

1.3 安装依赖库

  安装编译mrpt依赖的库。

1
2
3
4
5
6
7
# All Ubuntu versions:
apt install build-essential pkg-config cmake \
libopencv-dev libeigen3-dev zlib1g-dev \
libsuitesparse-dev libjpeg-dev

# plus, only for Ubuntu < 22.10:
apt install libwxgtk3.0-gtk3-dev

 更多的MRPT功能需要安装以下依赖包,推荐编译环境都安装上。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Build OpenGL graphics, Qt and nanogui GUIs:
apt install freeglut3-dev libassimp-dev libglfw3-dev \
libglu1-mesa-dev libqt5opengl5-dev qtbase5-dev \
libxrandr-dev libxxf86vm-dev

# Support most common sensors:
apt install libftdi1-dev libusb-1.0-0-dev libudev-dev libfreenect-dev \
libdc1394-dev libavformat-dev libswscale-dev libpcap-dev \
liboctomap-dev libopenni2-dev

# Support showing debug information in call stacks upon exceptions:
apt install binutils-dev libiberty-dev

# Support using system SimpleINI library (only Ubuntu >=20.04 focal)
apt install libicu-dev libsimpleini-dev

  注意,官方给出的库是 libdc1394-22-dev ,在ubuntu22.04上找不到该库,新版本已替代为 libdc1394-dev ,安装此即可。
  中途会让选择时区,在中国就输入6(亚洲)回车。

Asia.png

  输入70选择上海。

Shanghai.png

1.4 安装Qt5基础开发包

  mrpt中也使用了Qt5相关的开发库,因此如果编译见到如下警告,还需要安装Qt5的基础开发包才能解决。

install_qt5.png

  执行以下指令安装。

1
apt install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools

2 构建

  在官方提供的mrpt仓库根目录下,执行以下指令构建编译。

1
2
3
mkdir build
cd build
cmake ..

  看到如下提示构建编译通过。

build.png

3 编译

  cmake构建好后,执行以下指令开始编译。

1
cmake --build .