视觉SLAM十四讲第九讲 运行程序中碰到的shared libraries相关的坑。

作为一个新人学习SLAM碰到了不少问题,很感激CSDN的大神博客们帮了我好多,就在刚才终于实现了第九讲的内容,将自己的一些解决坑的收获分享一下,主要有两点:

(1).找不到共享库(如高博大神自己写的myslam.so),会有类似"error while loading shared libraries: xxx.so.x“的提示。

(2).现有程序是针对OpenCV3.1的,而现在3.3,3.4都出来了,我用的3.3,原先的程序会一直提示error while loading shared libraries: libopencv_viz.so.3.1: cannot open shared libraries。

一。针对第一个问题,网上有很多方法,下面为主要介绍使我成功运行的方法,参看这个https://stackoverflow.com/questions/12335848/opencv-program-compile-error-libopencv-core-so-2-4-cannot-open-shared-object-f 中置顶的answer,找到你ubuntu下的 /etc/ld.so.conf.d/,在下面新建myslam.conf,  里面加入myslam.so 的地址,如我的是/home/mac/slambook/ch9/0.2/lib。ps:这些文件夹在电脑中可能是不能修改的,比如说我,所以用sudo chmod -R 777 路径(文件夹或文件)可以“开锁”。

最后记得sudo ldconfig一下。

二。针对第二个问题,说起来其实很简单,在主CMakeLists下OpenCV库的引用是这样的

find_package( OpenCV 3.1REQUIRED )

include_directories( ${OpenCV_INCLUDE_DIRS} )

将3.1改成3.3,这时候程序其实没有改变,需要cmake编译过,所以建一个build文件,在build文件下 cmake,make一下。这时候运行指令就变成了../bin/run.vo ../config/default.yaml,其他和书上不变。

最后说一下这是在ubuntu16.04+ROS kinetic下的。如果是一起学SLAM的同学,希望这篇博客对你能有所帮助。

你可能感兴趣的:(SLAM)