ros运行到spinonce()时发生Segmentation fault (core dumped)段错误,无法进入回调函数

记录一个找了一天的报错!!!!
发现运行ros时,一运行订阅函数的回调函数,代码debug到spinOnce()就发生Segmentation fault 。

排查过程

一样的代码在朋友的电脑上运行无报错(给朋友电脑搭环境搭了很久呜呜),推测是电脑的库冲突或者是自定义的消息原因。
后经过简易代码验证,发现不是自定义的消息的原因。
仔细对比,发现有问题的代码编译时发出警告:
libboost_thread.so.1.58.0 needed by /opt/ros/kinetic/lib/libroscpp.so
may conflict with libboost_thread.so.1.75.0
在这里插入图片描述
因而可能是库冲突导致的问题。
我连接的库地址是/usr/local/lib
我装的libboost与ros自带的libboost产生了冲突
注释掉这行!!再编译无报错。运行后没出现一运行到spinOnce就出现段错误的情况,回调函数正常运行!
#link_directories(usr/local/lib)
装了多个版本的库!!一定不要粗鲁的链接库文件,要指定清楚,以防止冲突!!
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值