視覺SLAM十四講第九講 執行程式中碰到的shared libraries相關的坑。

jhlougt發表於2018-04-17

作為一個新人學習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的同學,希望這篇部落格對你能有所幫助。

相關文章