imu_tk编译报错解决汇总

由于本人实在是懒得学习,所以一直拖到大年初三才开始继续,,

不过还是先再次祝各位,新年快乐!!!

以下为正文:


版本:Ubuntu20.04+ros-noetic+gnuplot-5.0.5

在运行imu_tk时,出现了好多错误

问题1:QT5core、QT5gui等问题

报错截图
Could not find a package configuration file provided by "Qt5Qtcore" withany of the following names:

Qt50tcoreconfig.cmake 

gt5qtcore-config.cmake

Add the installation prefix of "ot50tcore" to CMAKE PREFIX PATH or set"Qt5QtCore DIR" to a directory containing

在我的CMakeList.txt文件中,默认使用的QT为qt4版本,而我用的是qt5,所以需要修改qt的版本至qt5,然而,改完之后再次编译会发现qt5core问题,好说,看下面这一行:

find_package(Qt5 COMPONENTS Core Gui Widgets OpenGL  REQUIRED)

需要将这一行这样改,为什么?这里有一些大佬们的讨论,概况一下就是版本问题,因为QT5版本与QT4版本对库的链接用法有不少区别,所以需要按照这样进行修改,但是注意!!还没改完全,我个人只知道是QT5的问题,只改了这一行会报更多的错,于是无奈网上一顿好找,终于找到一个按照qt5修改好的版本,链接中的代码可直接复制粘贴,亲测好用:适用qt5版本的CMakeLists.txt文件

好了,到此,总算是能往下顺利的编译几行了。。

想了解版本问题的同学这边请:qt4到qt5的版本问题以及链接办法

问题2:std命名空间成员问题

error: ‘exclusive_scan’ is not a member of ‘std’
  260 |     std::exclusive_scan(values.begin(), values.end(), result.begin(), 0);
  
/usr/local/include/ceres/product_manifold.h:309:59: error: expected constructor, destructor, or type conversion before ‘;’ token
  309 | ld<Manifold0, Manifold1, Manifolds...>;

这个大家应该都熟悉了,C++版本问题,只需要在CMakeLists中加一行:

SET( CMAKE_CXX_FLAGS "-std=c++17 -O3")

然后再次make即可顺利通过!

注意:imu_tk是cmake工程,需要按照cmake工程的编译方式进行编译,用ros的catkin_make编译不出来可执行文件,如下图:

catkinmake虽然看着没问题,但是没有生成可执行文件,因为这是Cmake工程,要用cmake

问题3:Eigen找不到

原因是Eigen的头文件是存放在/usr/include/eigen3/Eigen/下的,代码中#include<Eigen/core>这样找不到对应的头文件,所以需要手动在CMakeLists.txt中添加一行:

include_directories("/usr/include/eigen3")

还有其他解决办法,见参考博客

问题4:gnuplot not found

数据哗哗的往下算,但是到最后显示找不到gnuplot,即没有这个工具,需要安装一下:

我首先是安装这个博客进行安装的:gnuplot安装

但是在make和 make install的时候会出现权限不够的情况,于是我开启了su权限再试,发现出现了更多权限问题,无法写入巴拉巴拉一堆问题,我感觉应该是我把东西弄复杂了,但是我已经下载了gnuplot的包并且解压了,后面的步骤没有权限进行,我打算试试最简单的办法:

sudo apt-get install gnuplot

安装好后,我啥也没管,直接编译(编译imu_tk这个模块)运行,还真就成功了(玄学??)

个人理解是,gnuplot并不像其他工具包那样需要链接来使用,它只是一个工具,就像电脑上的软件,下载下来就直接打开就好,所以下载好之后可以直接使用它(理解有限,若有误希望大佬们多多指正)。

至此,imu_tk就顺利编译运行啦,这一章主要是进行imu的标定,至于使用解析法,后面第二遍再说。。

再次,祝大家,新年快乐!!!!!!!!!!!!!

  • 21
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值