zoukankan      html  css  js  c++  java
  • Ubuntu14.04编译maplab遇到的一些问题及解决方法

    1、安装ROS及初始配置

    ROS的安装方法参考原作者网页另一个网页,我的是Ubuntu14.04,ROS版本对应为indigo。虚拟机内存设置为4G,1个处理器,核心数为4

    没办法复制,手敲下来的难免有些小错误,错别字啥的,所以尽量用tab补全,少copy我的代码,废话少说,进入正题!

    原作者是在窗口中创建的环境变量,我是在手动在 /etc/profile 中添加的。打开 /etc/profile ,最后添加内容:

    export ROS_VERSION=indigo

    export CATKIN_WS=~/maplab_ws

    保存退出,执行 source /etc/profile

    然后创建工程:

    mkdir -p $CATKIN_WS/src

    cd $CATKIN_WS

    catkin init

    catkin config --merge-devel

    catkin config --extend /opt/ros/$ROS_VERSION

    catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release

    这里的catkin是ROS下的一个工具,相关指令参考英文网站

    然后安装原作者的意思,就要下载源码了。由于git的龟速下载,我就在Windows下download了zip包,然后拷到src下就编译,结果错误一大堆。后来才发现这些zip包是不完整的,所以,只能乖乖git了!!放心,用不了一年~~

    下载maplab源码:

    cd $CATKIN_WS/src

    git clone https://github.com/ethz-asl/maplab.git --recursive

    下载完后,接着下载依赖:

    git clone httpl://github.com/ethz-asl/maplab_dependencies --recursive

    2、编译

    接下来,你懂得,进入错误-解决-错误环节!下面是我遇到的一些问题,总结了前人一些经验,也有自己新遇到的。原作者提供了一些问题及解决方法,可以看一下

     开始编译:

    进入maplab_ws文件夹,执行:

    catkin build maplab

    然后,出现错误:

    “Workspace packages have changed, please re-source setup files to use them.”

    看一下ROS官方文档,你就知道,需要执行项目下的setup脚本:

    source devel/setup.bash

    然后重新编译(接下来你会重复很多次这个指令哈哈...):

    catkin build maplab

    接着,错误为:

    “make[2]: *** [opencv3_src-prefix/src/opencv3_stc-stamp/opencv3_src-download] Error 1”、“make[1]: *** [CMakeFiles/opencv3_src.dir/all] Error 2”之类的错误,原因是opencv3没有下载成功,日志里可以查看详细信息,原作者也提到,可以查看相关CMakelists.txt中的网址,手动下载,再解压到相关文件夹。我就照着做了,结果发现重新编译时,程序会把我拷进去的opencv3.2.0给删掉,无语(简直一万匹***飞奔而过!!!!!)

    所以老夫智能剑走偏锋背水一战瞎**乱搞了,没错,就是这样!!改他的下载opencv3的脚本文件(一会还要改回来的):

    打开 opencv3_catkin/opencv3_src-prefix/src/opencv3_src-stamp/download-opencv3_src.cmake 文件,将里面第14行的注释符号(‘#’)去掉,也就是去掉了下载包的时间限制,同理,

    打开 opencv3_catkin/opencv3_contrib-prefix/stc/opencv3_contrib-stamp/download-opencv3_contrib.cmake ,将第14行注释符号去掉。

    然后重新编译,慢慢等吧,龟龟龟龟龟速 git !!

    放心,一定会出错的!因为我们修改了人家的文件嘛!错误大概是 status之类的NOTFOUND。

    查看相应的3.2.0.zip是否已经下载完毕,一个82M左右、一个56M左右。啥?你不知道这两个包下载到了哪两个文件夹?那你还搞个锤子哦~,这种最基本的问题我就不管了哈(友情提示:在某些个cmake文件中)

    如果两个都已经下载好了,那么把刚才两个文件中原来注释的两行恢复,即重新注释掉,重新编译(catkin build maplab)

    慢慢等吧,opencv的编译有点耗时,4G内存,固态硬盘的话大概几十分钟

    应该还会出现错误,比如ceres下载失败,跟之前opencv3差不多的问题,不过查看了日志你会发现有区别的。opencv3是因为 git 下载慢所以我们去掉了下时间限制,但 ceres 这个是完全连接不到网站啊啊啊,可能是我没FQ的原因??不重要,改个网址就行了

    打开 ceres_catkin/ceres_src-prefix/tmp/ceres_src-gitclone.cmake ,第29行网址改为 “https://github.com/ceres-solver/ceres-solver”,保存退出,重新编译。

    假如你遇到这个错误(那你一定是个不听话的孩子):

    g++:internal compiler error: Killed (program cc1plus) ..........

    为啥这么说嘞,请看本文第一行。关机,把虚拟机核心数设置为4,再重新编译(记得先source项目下的setup脚本)

    完成!

  • 相关阅读:
    关于 数据库中 读写 Blob 字段的正确做法。
    C# wave mp3 播放器探寻
    公布Delphi热键注册源码
    Windows 下 Eclipse 集成开发环境演绎
    VS2012 MSHA 文件制做程序
    Erlang 学习笔记 (二) Debugger工具的使用
    Excel里数字列号转换为字符标签列
    串或序列的rotate操作
    64K动画技术剖析:Mod音乐的制作和使用
    64K动画 技术剖析之:Metaball
  • 原文地址:https://www.cnblogs.com/hxzkh/p/8316432.html
Copyright © 2011-2022 走看看