Ubuntu16.04,ROS kinectic

报错信息为“

make[2]: *** No rule to make target '/home/william/slam/g2o/lib/libg2o_csparse_extension.so', needed by '/home/william/catkin_ws/devel/lib/rgbdslam/rgbdslam'. Stop.
CMakeFiles/Makefile2:5881: recipe for target 'rgbdslam_v2/CMakeFiles/rgbdslam.dir/all' failed
make[1]: *** [rgbdslam_v2/CMakeFiles/rgbdslam.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j4 -l4" failed

报错原因如下:

1. 先是按照https://github.com/felixendres/rgbdslam_v2上的README.md来安装

2. 出现G2O引起的bug,在编译安装g2o时通过,却在编译rgbdslam中报错,依照https://hubpages.com/technology/Instructions-for-compiling-rgbdslam-v2-on-a-fresh-Ubuntu-1604-install-ros-kinetic-in-virtualbox中的6,解决了

缺少依赖,执行sudo apt-get install libsuitesparse-dev(装依赖后再装G2O会好一点),在报错之后安装依赖,如果不行,就装完依赖后再安装g2o

我觉得本次主要讲的大bug就是从这里引起的

3. 遇到https://blog.csdn.net/zhuoyueljl/article/details/78536996?reload中,“required process[rgbdslam-2] has died”......Iinitiating down”问题,解决后,编译出现needed by错误

解决方法为:

工作空间(也有可能是编译G2O时才会出现)的cmake_modules中(位于SRC)有个FindG2O.cmake的文件,将其移除掉就可以了,因为用3的方法,make install了G2O,因此不需要cmake_modules来找G2O的包

PS:

学到的几个小技巧

1 使用grep搜索文件中的文本信息,语法是

grep -rw PATTERN [file]

2. 在CMakeLists.txt中,设置找包的路径:

set(G2O ‘包的绝对路径’)

反思总结:

1. 同样是对编译错误进行查找,在报错信息提示找不到这个 ibg2o_csparse_extension.so 文件时,我倾向于使用grep去搜索,rgbdsla包中哪行代码对这个文件进行查找,但是结果明显是找不到的。这是对整个编译架构的不理解

2. 不过,在没有其他经验的前提下,做点什么总是比什么都不做来得好。

rgbdslam_v2编译过程中引起的needed by错误的更多相关文章

  1. 编译过程中,termcap.h 文件找不到路径 licli.a终于生成

    编译过程中,termcap.h      文件找不到路径   查看是linux  源码下找不到termcap.h文件   安装了所有关于*cap*的源码包也不起作用     今天终于解决了这个问题,搜 ...

  2. live555源码研究(十)------在编译过程中遇到的问题及解决方法

    一.编译testOnDemandRTSPServer.cpp. 在testProgs项目中,加入testOnDemandRTSPServer.cpp进行编译,编译类型是编译成exe文件,在编译过程中会 ...

  3. OpenJDK源码研究笔记(十三):Javac编译过程中的上下文容器(Context)、单例(Singleton)和延迟创建(LazyCreation)3种模式

    在阅读Javac源码的过程中,发现一个上下文对象Context. 这个对象用来确保一次编译过程中的用到的类都只有一个实例,即实现我们经常提到的"单例模式". 今天,特意对这个上下文 ...

  4. colmap编译过程中出现,无法解析的外部符号错误 “__cdecl google::base::CheckOpMessageBuilder::ForVar1(void)”

    错误提示: >colmap.lib(matching.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: cl ...

  5. bundler-sfm windows下编译过程中出现的错误

    一.“sysdep1.h”文件缺失 错误提示: fatal error C1083: 无法打开包括文件: “sysdep1.h”: No such file or directory 这些作为这个软件 ...

  6. idea在maven中引入了jar包依赖,但是编译过程中报出XXX程序包不存在,已解决

    idea在maven中引入了jar包依赖,但是编译过程中报出XXX程序包不存在 1. 报错具体情况 2. Project Structure中的Libraries没有任何红色波浪线 3. 发现自己要引 ...

  7. Python变量的作用域在编译过程中确定

    为了节省读友的时间,先上结论(对于过程和细节感兴趣的读友可以继续往下阅读,一探究竟): [结论] 1)Python并不是传统意义上的逐行解释型的脚本语言 2)Python变量的作用域在编译过程就已经确 ...

  8. Mysql安装过程中出现apply security settings错误的解决方法

    在学习Mysql的过程中,首先要安装Mysql.然而在第一遍安装过程中难免会出现安装错误的时候,当卸载后第二次安装(或者第三次甚至更多次)的时候,往往在安装最后一步会出现apply security ...

  9. Android编译过程中的碎碎念

    刷机不是用rom包吗?怎么可以使用fastboot flashall -w将*.img文件刷入呢? 在Mac上面可以参考这篇文章进行刷机.概括来说解释从官方下载rom包,解压后运行./flash-al ...

随机推荐

  1. vue2.0使用Sortable.js实现的拖拽功能

    简介 在使用vue1.x之前的版本的时候,页面中的拖拽功能,我在项目中是直接用的jQuery ui中的sortable.js,只是在拖拽完成后,在update的回调函数中又重新排序了存放数据的数组.但 ...

  2. python习题-注册用户程序

    把上周的注册程序改一下,用字典保存# 字典格式如下:# {# "niuhanyang":{"passwd":"123456","r ...

  3. Git_学习_05_ 解决冲突

    二.参考资料 1.使用git pull文件时和本地文件冲突怎么办? 2.git 冲突解决

  4. 一篇 jQuery 常用方法及函数的文章留存备忘。

    jQuery 常见操作实现方式 $("标签名") //取html元素 document.getElementsByTagName("") $("#ID ...

  5. web项目路径如何更改

  6. JSP分页1

    分页 1.什么分页? 第N页/共M页 首页 上一页 1 2 3 4 5 6 7 8 9 10 下一页 尾页 口 go 分页的优点:只查询一页,不用查询所有页! 2.分页数据 页面的数据都是由Servl ...

  7. curl常用命令行总结

    curl 有时HTTP服务接口写完,需要验证下接口功能,这个使用用curl最合适了 curl 全称 command line url viewer curl www.taobao.com curl w ...

  8. pyqt5信号与槽2

    信号和槽与类的属性和方法在层次上是相同的,同属与一个类的特征. 信号的定义由工厂函数生成: signal=PyQt5.QtCore.pyqtSignal(types[, name[, result[, ...

  9. 判断浏览器是否支持css3属性或单位

    1.用CSS.supports()方法 mark-zhq[3] //判断是否支持flex布局 var supportsFlex = CSS.supports("display", ...

  10. 用VLC做流媒体服务器

    VLC确切来说只是个播放器,是videolan的开源产品,videolan原来还有一个VLM,是服务器端,专门用来做流媒体服务器的,但是现在VLM的功能已经都集成进VLC了,所以也就可以用VLC来做流 ...