这是2021年的最后一篇博客~
新年快乐!
首先需要先安装cmake编译器:
sudo apt-get install cmake
以及,将十四讲的示例代码克隆下来(十四讲的源码地址点击这里):
git clone --recursive https://github.com/gaoxiang12/slambook2.git
由于里面的3rdparty文件夹内所有内容都来自于其他github仓库,所以需要加上--recursive
参数,不然克隆下来的内容不完整。
如果你没有安装配置好git,也可以通过下载zip文件的形式直接下载代码。
最简单,不需要自己编译,打开一个终端,一行命令搞定:
sudo apt-get install libeigen3-dev
在g2o目录下,打开一个终端,依次执行:
mkdir build # 创建build目录
cd build # 进入build目录
cmake .. # 生成makefile
make -j8 # 进行编译
sudo make install # 安装
在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 # 安装
在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 # 安装
进入Pangolin目录,打开一个终端。首先安装依赖:
sudo apt install libglew-dev
然后依次执行如下命令:
mkdir build # 创建build目录
cd build # 进入build目录
cmake .. # 生成makefile
cmake --build . # 进行编译
sudo make install # 安装
在googletest目录下,打开一个终端,依次执行:
mkdir build # 创建build目录
cd build # 进入build目录
cmake .. # 生成makefile
make -j8 # 进行编译
sudo make install # 安装
首先,进入opencv官网,选择所需要的版本(十四讲里使用的是opencv3),下载其源码(Sources)。这里下载的是OpenCV – 3.4.15
,如下图所示:
下载后是一个zip压缩文件。将其解压到slambook2/3rdparty/路径下。然后,进入opencv-3.4.15目录下,打开一个终端。
首先安装依赖项:
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
还没完,还有一个更坑爹的依赖,VTK。这个依赖与opencv的可视化息息相关,但是VTK也同样无法直接安装,需要手动下载编译,以及,它又会依赖一些其他的库(真.套娃)。下面细细说来,跟着如下步骤依次安装基本上不会有什么问题。当然,你可以首先尝试一下通过命令行安装vtk:
sudo apt-get install libvtk7-dev
但是会报如下错误:
update或者fix之后都没用。所以还是老老实实自己编译吧!
进入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
然后会跳出安装界面,需要输入用户名密码,没有的话就注册一个,然后全部默认选项进行安装即可。
sudo apt-get install libx11-dev libxext-dev libxtst-dev libxrender-dev libxmu-dev libxmuu-dev
sudo apt-get install build-essential libgl1-mesa-dev libglu1-mesa-dev
sudo apt-get install freeglut3-dev
去vtk官方下载页面,选择所需版本进行下载。我这里下载的是vtk7.1.1版本的。为了保持一致,下载后将其解压到slambook2/3rdparty/
路径下。然后,老样子,进入vtk目录下,打开一个终端,依次执行如下命令:
mkdir build # 创建build目录
cd build # 进入build目录
cmake .. # 生成makefile
make -j8 # 进行编译
sudo make install # 安装
成功后,依次执行如下命令编译安装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的编译依赖有点多,真实太不容易了,贴一个安装成功的最后输出结果:
执行如下命令,打开ld.so.conf文件。
sudo gedit /etc/ld.so.conf
在里面加上include /usr/loacal/lib
,如下图所示:
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的版本号,则表明安装成功!