问题场景
今天在复习SLAM十四讲第7章节位姿计算例子pose_estimation_3d2d时遇到了链接错误问题,具体信息如下图所示:
问题原因分析
经过网上检索相关博客,发现是由于ROS自带的g2o版本与本地按照的版本存在冲突,这个冲突问题可以通过linux自带的ldd命令检查出来,首先检测能运行成功的例子的依赖项。下图是能正常使用的g2o示例文件的依赖项:
报错文件的依赖项:
可以看到,不知何原因,这一个程序链接到了ROS自带的g2o库文件
解决方案
目前没想到很优雅的解决方式,我的方法就是将ros目录下的库文件移动到其他文件夹里,让系统检索不到它们,从而只链接到usr目录下的库文件。具体的操作步骤如下:
-
首先进入ros的目录下