最近在进行ros项目调试的时候,发现回调函数一直都进不去,很奇怪,一直找不到原因。
这里提供一下一个可能的原因:环境中的两个动态链接库冲突导致的
。
这里体现在项目编译结束的时候终端最后一行会出现一个warning:/usr/bin/ld: warning: libboost_thread.so.1.65.1, needed by /opt/ros/melodic/lib/libroscpp.so, may conflict with libboost_thread.so.1.60.0
首先要说明的是,出现这个warning的原因是环境中的两个 lib_boost_thread.so 起冲突了,一个是我系统环境加载的 lib_boost_thread.so版本,一个是项目加载的第三方库中的lib_boost_thread.so版本,两个版本不一致。
而一开始我忽视了这个warning,所以导致在调试时ros回调函数进不去的问题。
解决这个warning的方法也很简单,保留一个版本即可。因为我的系统环境版本更高,所以直接删除了第三方库中的版本。这一问题也可以参考这个博客:/usr/bin/ld: warning: libboost_chrono.so.1.65.1, needed by /opt/ros/melodic/lib/libroscpp.so, may co文章来源地址https://www.toymoban.com/news/detail-602656.html
文章来源:https://www.toymoban.com/news/detail-602656.html
到了这里,关于ROS回调函数进不去的可能原因的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!