这是2021年的最后一篇博客~
新年快乐!

0 准备工作

  首先需要先安装cmake编译器:

sudo apt-get install cmake

  以及,将十四讲的示例代码克隆下来(十四讲的源码地址点击这里):

git clone --recursive https://github.com/gaoxiang12/slambook2.git

  由于里面的3rdparty文件夹内所有内容都来自于其他github仓库,所以需要加上--recursive参数,不然克隆下来的内容不完整
  如果你没有安装配置好git,也可以通过下载zip文件的形式直接下载代码。
  

1 Eigen

  最简单,不需要自己编译,打开一个终端,一行命令搞定:

sudo apt-get install libeigen3-dev

  

2 g2o

  在g2o目录下,打开一个终端,依次执行:

mkdir build          # 创建build目录
cd build             # 进入build目录
cmake ..             # 生成makefile
make -j8             # 进行编译
sudo make install    # 安装

  

3 Sophus

  在Sophus目录下,打开CMakeLists.txt文件,在里面加上如下一行代码(不加的话在make的时候会报错):

set(CMAKE_CXX_FLAGS "-Wno-error=deprecated-declarations -Wno-deprecated-declarations ")

  我这里加在了第30行的位置,如下图所示:

在这里插入图片描述
  打开一个终端,依次执行:

mkdir build          # 创建build目录
cd build             # 进入build目录
cmake ..             # 生成makefile
make -j8             # 进行编译
sudo make install    # 安装

  

4 ceres

  在g2o目录下,打开一个终端。首先安装依赖:

sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3 libgflags-dev libgoogle-glog-dev libgtest-dev

  然后依次执行如下命令进行编译安装:

mkdir build          # 创建build目录
cd build             # 进入build目录
cmake ..             # 生成makefile
make -j8             # 进行编译
sudo make install    # 安装

  

5 Pangolin

  进入Pangolin目录,打开一个终端。首先安装依赖:

sudo apt install libglew-dev

  然后依次执行如下命令:

mkdir build          # 创建build目录
cd build             # 进入build目录
cmake ..             # 生成makefile
cmake --build .      # 进行编译
sudo make install    # 安装

  

6 googletest

  在googletest目录下,打开一个终端,依次执行:

mkdir build          # 创建build目录
cd build             # 进入build目录
cmake ..             # 生成makefile
make -j8             # 进行编译
sudo make install    # 安装

  

7 OpenCV 3

  首先,进入opencv官网,选择所需要的版本(十四讲里使用的是opencv3),下载其源码(Sources)。这里下载的是OpenCV – 3.4.15,如下图所示:

在这里插入图片描述
  下载后是一个zip压缩文件。将其解压到slambook2/3rdparty/路径下。然后,进入opencv-3.4.15目录下,打开一个终端。
  

7.1 好安装的依赖

  首先安装依赖项:

sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff-dev libopenexr-dev libtbb-dev

  还有一个libjasper-dev依赖,直接安装会失败,需要依次执行如下命令:

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt-get update
sudo apt install libjasper1 libjasper-dev

  

7.2 不好安装的依赖

  还没完,还有一个更坑爹的依赖,VTK。这个依赖与opencv的可视化息息相关,但是VTK也同样无法直接安装,需要手动下载编译,以及,它又会依赖一些其他的库(真.套娃)。下面细细说来,跟着如下步骤依次安装基本上不会有什么问题。当然,你可以首先尝试一下通过命令行安装vtk:

sudo apt-get install libvtk7-dev

  但是会报如下错误:

在这里插入图片描述
  update或者fix之后都没用。所以还是老老实实自己编译吧!
  

安装qt5

  进入qt下载页面,选择需要的版本进行下载。这里下载5.12.12版本,下载run文件。下载完成后,在文件所在目录打开一个终端,依次执行如下命令(run文件名依据具体下载的名称进行修改):

sudo chmod u+x qt-opensource-linux-x64-5.12.12.run
sudo ./qt-opensource-linux-x64-5.12.12.run

  然后会跳出安装界面,需要输入用户名密码,没有的话就注册一个,然后全部默认选项进行安装即可。
  

安装x11
sudo apt-get install libx11-dev libxext-dev libxtst-dev libxrender-dev libxmu-dev libxmuu-dev

  

安装OpenGL
sudo apt-get install build-essential libgl1-mesa-dev libglu1-mesa-dev

  

安装libglut-dev
sudo apt-get install freeglut3-dev

  

安装vtk

  去vtk官方下载页面,选择所需版本进行下载。我这里下载的是vtk7.1.1版本的。为了保持一致,下载后将其解压到slambook2/3rdparty/路径下。然后,老样子,进入vtk目录下,打开一个终端,依次执行如下命令:

mkdir build          # 创建build目录
cd build             # 进入build目录
cmake ..             # 生成makefile
make -j8             # 进行编译
sudo make install    # 安装

  

7.3 安装opencv3

  成功后,依次执行如下命令编译安装opencv3:

mkdir build          # 创建build目录
cd build             # 进入build目录
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
sudo make -j8        # 进行编译
sudo make install    # 安装

  好了,大功告成!opencv的编译依赖有点多,真实太不容易了,贴一个安装成功的最后输出结果:

在这里插入图片描述  

7.4 环境配置

  执行如下命令,打开ld.so.conf文件。

sudo gedit /etc/ld.so.conf

  在里面加上include /usr/loacal/lib,如下图所示:

在这里插入图片描述
  完成后保存关闭文件,然后打开bash.bashrc文件:

sudo gedit /etc/bash.bashrc 

  在末尾加上如下两行内容:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

  如下图所示:

在这里插入图片描述
  保存并关闭,然后执行如下命令,使修改后的环境变量生效:

source /etc/bash.bashrc

  再执行如下命令验证是否安装成功:

pkg-config opencv --modversion

  如果输出了opencv的版本号,则表明安装成功!

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐