在编译OKVIS中,执行make -j8时报错的解决方法
1.根据github上OKVIS的安装步骤一步一步执行。
由于github经常进不去,我就进了gitee网站查到OKVIS的安装步骤(参考链接:https://gitee.com/bill4u/okvis?_from=gitee_search),
sudo apt-get install cmake
sudo apt-get install libgoogle-glog-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install libeigen3-dev
sudo apt-get install libsuitesparse-dev
sudo apt-get install libboost-dev libboost-filesystem-dev
sudo apt-get install libopencv-dev
确保上面的插件成功安装,
上面成功安装后再执行
git clone https://github.com/ethz-asl/libvisensor.git
cd libvisensor
./install_libvisensor.sh```
注:在执行 git clone https://github.com/ethz-asl/libvisensor.git命令时失败了,链接不了github,然后我将https改成git还是一样的错,我就直接一点,在gitee网站上直接去下载libvisensor包(链接:https://gitee.com/mirrors_ethz-asl/libvisensor),下载好后再来执行下面这两条命令
cd libvisensor
./install_libvisensor.sh
``
成功之后就要开始下载OKVIS包,
git clone https://github.com/ethz-asl/okvis.git
执行该命令报错,链接不上github,我依然用上面的方式,在gitee网站上搜OKVIS(链接:https://gitee.com/mirrors_ethz-asl/okvis?_from=gitee_search),下载好后进行解压,我将解压好的包放在了home下,在桌面打开一个新终端,执行 cd okvis ,进入到okvis(下载好okvis解压后的包名)文件夹下后,在该终端下继续执行下面的命令
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j8
make install
在执行make -j后会报错,如下:
原因:CMakeList中设置了下载安装ceres-solver,但是网址没有找到,也就是在make的过程中,出现上图所示的错误,这是因为okvis依赖ceres-solver(最小二乘优化求解器,google公司的),而okvis默认安装时在线通过git下载并安装ceres(即使你之前在Ubuntu上安装过ceres),但是链接不上google的服务器(原因你懂的),所以系统几次尝试不成功之后就会报错(上图所示) 将CMakeLists.txt 文件中151行改为:GIT_REPOSITORY https://github.com/ceres-solver/ceres-solver.git若依然报错fatal fatal: unable to access https://github.com/ceres-solver/ceres-solver.git,原理还是一样,这是因为okvis依赖ceres-solver(最小二乘优化求解器,google公司的),而okvis默认安装时在线通过git下载并安装ceres(即使你之前在Ubuntu上安装过ceres),但是链接不上github,
解决办法:这个时候我去阅读了一okvis的CMlichengjilichengjilichengjiakeLists文件,发现了下面高亮的部分:,可以使用系统已经安装的ceres(前提是你已经安装)。问题是如何选择这个选项。往上翻的时候发现了这个:
也就是作者为用户设置了备选项,如果使用系统的ceres,在这里把OFF改成ON即可。修改之后,保存。
然后删除之前的build文件夹,重新执行编译安装命令:
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE ..
make -j8
但我电脑还会报错,但这次错和ceres-solver有点相似,链接不上github,如下图:
我在CMakeList.txt里面发现可以类似于ceres-solver那样改的,我在想,既然无法访问我就不直接链接github,通过github镜像的方式(启发来自于这篇知乎:https://www.zhihu.com/question/27159393?sort=created),
将 GIT_REPOSITORY https://github.com/laurentkneip/opengv
用 GIT_REPOSITORY https://github.com.cnpmjs.org/laurentkneip/opengv替换
然后删除之前的build文件夹,重新执行编译安装命令:
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE ..
make -j8
然后就成功了,make -j8 成功后就可以执行make install
,这里若出现没有权限,权限不够的错误提示,只需在加个sudo即可,即执行 sudo make install,到此OKVIS的安装过程就完成了,可以开始跑数据集了,这也是我安装过程中遇到的所有问题:
我这里跑的时MH_01_easy,
./okvis_app_synchronous /home/miao//okvis/config/config_fpga_p2_euroc.yaml /home/miao/Euroc/MH_01_easy/mav0/