2021-08-06

2023-11-09

在编译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/


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2021-08-06 的相关文章

  • 切换图片框可见性 C#

    为什么图片框控件的可见性属性在这里不起作用 我最初将它们设置为 false 以便在屏幕加载时它们不可见 但后来我想切换这个 我已完成以下操作 但似乎不起作用 这是一个 Windows 窗体应用程序 private void Action w
  • Android NDK C++“wstring”支持

    我有用 C 编写的源代码 lib 现在我想在 Android NDK 项目 NDK 6 中编译并使用相同的源代码 lib 我能够编译大多数 C 文件 除了基于 std wstring 的功能 在 Application mk 中 当我指定时
  • 为什么派生类不使用基类的operator=(赋值运算符)?

    以下是实际问题的简化版本 而不是打电话Base operator int 代码似乎生成了一个临时的Derived对象并复制它 既然函数签名似乎完美匹配 为什么不使用基本赋值运算符 这个简化的示例没有显示任何不良影响 但原始代码在析构函数中有
  • 返回 int& 的函数[重复]

    这个问题在这里已经有答案了 我在网上查了一下发现一篇试图解释的文章std move和右值 http thbecker net articles rvalue references section 01 html并发现了一些我实在无法掌握的东
  • 在运行时设置 DataGridView 上的 DataFormatString?

    是否可以在运行时设置 ASP NET DataGridView 中的列或单元格的 DataFormatString 属性 这应该有效 BoundField priceField grid Columns 0 as BoundField pr
  • 如何使用汇编获取BIOS时间?

    我正在从头开始实现一个小型操作系统 用于教育目的 现在 我想使用汇编来获取 BIOS 时间 我对此进行了很多搜索 但找不到任何代码示例来执行此操作 如果有人可以提供任何参考或代码示例或与此相关的任何内容 我将非常感激 See 时钟中断 1a
  • rand() 播种与 time() 问题

    我很难弄清楚如何使用 rand 并使用 Xcode 用 time 为其播种 我想生成 0 到 1 之间的随机十进制数 该代码为我提供了元素 1 和 2 看似随机的数字 但元素 0 始终在 0 077 左右 有什么想法吗 我的代码是 incl
  • 如何在 Windows 窗体中运行屏幕保护程序作为其背景?

    如何在 Windows 窗体中运行屏幕保护程序作为其背景 用户还可以在屏幕保护程序运行时与表单控件进行交互 为什么这个 我们有一个案例 需要在用户时运行 Windows Bubbles 屏幕保护程序 可以继续与表单控件交互吗 您可以使用以下
  • 将 C# 反射代码移植到 Metro-Ui

    我正在尝试移植使用反射的现有 C 类 通用工厂 但我无法编译这段代码 Type types Assembly GetAssembly typeof TProduct GetTypes foreach Type type in types i
  • F10键没被抓住

    I have a Windows Form and there overriden ProcessCmdKey However this works with all of the F Keys except for F10 I am tr
  • 使用 openssl 检查服务器安全协议

    我有一个框架应用程序 它根据使用方式连接到不同的服务器 对于 https 连接 使用 openssl 我的问题是 我需要知道我连接的服务器是否使用 SSL 还是 TLS 以便我可以创建正确的 SSL 上下文 目前 如果我使用错误的上下文尝试
  • 如何使用泛型类型的 DataContractSerializer 编写自定义序列化器?

    我想编写一个自定义序列化器 用于将会话状态存储到Azure 缓存 预览版 这意味着这个自定义序列化器必须实现IDataCacheObjectSerializer 如果我错了 请告诉我 我需要编写这个自定义序列化程序的原因是我需要序列化一些包
  • c# 如何生成锦标赛括号 HTML 表

    所以我已经被这个问题困扰了三个星期 但我一生都无法弄清楚 我想做的是使用表格获得这种输出 演示 http www esl world net masters season6 hanover sc2 playoffs rankings htt
  • 数据损坏 C++ 和 Python 之间的管道

    我正在编写一些代码 从 Python 获取二进制数据 将其通过管道传输到 C 对数据进行一些处理 在本例中计算互信息度量 然后将结果通过管道传输回 Python 在测试时 我发现如果我发送的数据是一组尺寸小于 1500 X 1500 的 2
  • 在生产服务器上使用 Subversion 使文件生效的最佳方法是什么?

    目前我已经设置了 subversion 这样当我在 Eclipse PDT 中进行更改时 我可以提交更改 它们将保存在 home administrator 中项目文件 该文件具有 subversion 推荐的 branches tags
  • 如何不在类中实现接口的功能?

    面试时面试官问了我以下问题 但我不知道这个问题的答案是什么 请帮忙 如果我不想 我必须做什么 在我的类中实现一个函数 在接口中声明为 由我班实施 Edited 我正在使用 NET 和 C 如果有人可以提供 C 示例代码示例 那就太好了 Th
  • 在 .NET 中记录 StackOverflowException

    最近 我的 NET 应用程序 asp net 网站 中出现了堆栈溢出异常 我之所以知道该异常是因为它出现在我的 EventLog 中 我知道 StackOverflow 异常无法被捕获或处理 但是有没有办法在它杀死您的应用程序之前记录它 我
  • 是否有任何不使用公共虚拟方法的正当理由? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 是否有任何不使用公共虚拟方法的正当理由 我在某处读到我们应该避免使用公共虚拟方法 但我想向专家确认这是否是有效的声明 对于良好且稳定的 API
  • 创建带有部分的选项卡式侧边栏 WPF

    我正在尝试创建一个带有部分的选项卡式侧边栏 如 WPF 中的以下内容 我考虑过几种方法 但是有没有更简单 更优雅的方法呢 方法一 列表框 Using a ListBox并将 SelectedItem 绑定到右侧内容控件所绑定的值 为了区分标
  • 如何确定给定方法可以抛出哪些异常?

    我的问题和这个真的一样 找出 C 中方法可能抛出的异常 https stackoverflow com questions 264747 finding out what exceptions a method might throw in

随机推荐

  • LVGL V8之flex grow

    flex grow布局 static void lv example flex 3 void lv obj t cont lv obj create lv scr act 当前活动界面创建obj对象作为容器 lv obj set size
  • 《STL源码剖析》深入剖析理解

    目录 提示 这里可以添加系列文章的所有文章的目录 目录需要自己手动添加 前言 标准程序库和STL概论 空间配置器解析 提示 写完文章后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 目录 前言 标准程序库和STL概论 空间配置器
  • OpenWrt 修改源码的密码配置(七)

    通过修改源码方式 修改账号及密码 修改密码 package base files files etc shadow root 0 0 99999 7 daemon 0 0 99999 7 ftp 1 BKbzZZm0 nrDMDt2K5Yu
  • qt修改构建套件

    1 qtcreator 工具 选项 qtVersion 添加 选择要添加的qmake 2 点击构建套件 选择对应的编译器 3 选择对应的调试器 解决can not find qmake conf问题
  • Synchronized(对象锁)和Static Synchronized(类锁)的区别

    Synchronized和Static Synchronized区别 通过分析这两个用法的分析 我们可以理解java中锁的概念 一个是实例锁 锁在某一个实例对象上 如果该类是单例 那么该锁也具有全局锁的概念 一个是全局锁 该锁针对的是类 无
  • 打造万物识别之利器!微信扫一扫植物识别篇技术解析

    导语 冬去春来日渐暖 柳絮萌芽草生根 立春已过 又到了户外踏青赏花的季节 再过段时间 公园 郊外 路边各种鲜花都会渐次开放 大家踏春的时候都会拍一些好看的照片 发一些朋友圈 写一些花语 市场上也出现了不少识花app 用户下载app 拍张照片
  • 单播与多播mac地址

    MAC 地址 Media Access Control Address 是一个用于识别网络设备的唯一标识符 每个网络设备都有一个独特的 MAC 地址 用于在局域网中进行通信 单播MAC地址 单播MAC地址用于单播通信 即一对一的通信模式 当
  • static静态代码块

    static静态代码块 public class Person 静态代码块 在类加载时候执行静态代码块 只会执行一次 static System out println Person static initializer 实例初始化块 每次
  • 富文本编辑器 VUE-QUILL-EDITOR 使用教程

    一 基础用法 1 NPM 导入 VUE QUILL EDITOR npm install vue quill editor save 2 引入 VUE QUILL EDITOR 在全局中引入 import Vue from vue impo
  • 如何实现单链表任意两个元素交换(不包括表头)

    凭第一感觉写的版本 算法和思路有好的想法再优化 交换链表任意两个元素 void SwapItem LinkedList head int posA int posB 从非头结点开始交换操作 保证至少存在两个节点 assert head he
  • 教你如何用C语言做一个简单的贪吃蛇

    小时候大家可能都玩过贪吃蛇 但有没有想过自己做一个出来玩玩看 今天我们就教大家用C语言做一个简单的贪吃蛇游戏 这里没有采用图形界面去做 而是采用win32控制台 首先 先把做好的游戏初始界面和游戏截图先展示一下 游戏初始界面如图 游戏截图如
  • Vue切换路由,页面回到上一次缓存的滚动位置(代码量少,通用有效)

    需求 当切换不同路由时 期望切换后的路由页面保留上次滚动的位置 解决思路 利用路由中的meta属性 对不同路由页面滚动的位置做缓存 切换路由时 获取当前路由meta属性中缓存的滚动位置 再自动滚动到此位置即可 具体代码 router js文
  • Kali Linux安装教程

    虚拟机Vmware Worksation下Kali Linux安装教程 本次安装Vmware Worksation采用的是15 5 pro 下载kali镜像 首先进入kali官网 https www kali org 点击Downloads
  • GIT操作:把当前仓库的一个分支push到另一个仓库的指定分支

    背景 有时候我们想把当前仓库A的一个指定分支1 推给 另一个仓库B的另一个指定分支2 可以通过2个主要命令git remote xxx 和 git push newOrigin 当前分支 目标分支 完成 示例 假设有2个仓库uu和uunew
  • java什么时候需要用序列化?

    文章目录 一 Java序列化概述 二 什么时候用序列化 三 项目创建很多对象怎么优化 场景 优化思路一 加条件判断 优化思路二 使用clone浅拷贝 一 Java序列化概述 简单说就是为了保存在内存中的各种对象的状态 也就是实例变量 不是方
  • vscode 缩进,取消自动格式化,溢出不换行

    Ctrl P gt 在输入框中输入 settings json 打开第一个 取消自动换行 editor wordWrap off 代码缩进 editor tabSize 4 取消每次保存的时候自动格式化 editor formatOnSav
  • 离散数学:常用的数学符号

    x A x 是 A 的元素 x A x 不是 A 的元素 A B A 是 B 的子集 或 A 包含于 B B 包含 A A B A 是 B 的真子集 A B B 不包含 A 或 A 不包含 B A B A 与 B 有相同的元素 A B A
  • zookeeper的Linux下安装和使用 单机版/集群版

    这个是单节点的 集群的在另一篇文章里做了说明 一 解压zookeeper的tar包 二 到zookeeper的conf目录下 拷贝zoo sample cfg 为zoo cfg 记住名字必须叫zoo cfg root VM 0 7 cent
  • 【高级篇 / SDWAN】(7.0) ❀ 07. DNS 解析最快的宽带优先上网 ❀ FortiGate 防火墙

    自从配置SD WAN之后 很多人反应网速变慢了 打开网站卡半天 你有没有接到过这种投诉 其实这是因为DNS解析的原因 由于多条宽带属于不同的运营商 而运营商自带的DNS对自己宽带的解析很快 但对其它宽带就会报错 所以我们只能使用通用DNS
  • 2021-08-06

    在编译OKVIS中 执行make j8时报错的解决方法 1 根据github上OKVIS的安装步骤一步一步执行 由于github经常进不去 我就进了gitee网站查到OKVIS的安装步骤 参考链接 https gitee com bill4