執行ps2總結

是皮皮攀呀,發表於2018-12-18

問題1:

缺少對應的2個cpp檔案和標頭檔案。直接貼上進去就可以。

另外在add_library中加入對應的.cpp檔案。

 

問題2:

at /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
  Could not find a package configuration file provided by
  "line_based_plane_segment" with any of the following names:

    line_based_plane_segmentConfig.cmake
    line_based_plane_segment-config.cmake

  Add the installation prefix of "line_based_plane_segment" to CMAKE_PREFIX_PATH or set "line_based_plane_segment_DIR" to a directory  containing one of the above files.  If "line_based_plane_segment" provides a separate development package or SDK, be sure it has been installed.

解決方法:

在cmakelists的find_package裡的 line_based_plane_segment註釋掉。

這樣cmake的時候就不會報錯,且成功了。

 

問題3:

報錯缺少lline_based_plane_segment,即是缺少對應的lib檔案。

直接在target_link_libraries裡面直接指向該.so檔案就OK

最後make成功啦~

但可能正是由於這次註釋,導致最後跑出的結果就是空的,只有一個座標系而已。

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`

ps1:

問題1:fatal error: opencv2/nonfree/features2d.hpp: 沒有那個檔案或目錄

網上搜出來的結果是:

sudo apt-get update

sudo add-apt-repository --yes ppa:xqms/opencv-nonfree

sudo apt-get update sudo apt-get install libopencv-nonfree-dev

但在我的系統裡並不好使。執行結果沒有更新。執行最後一步指令的時候,又會提示安裝相互依賴,查了很多資料,也是無解。

最後就放棄這條路了。

其實這個問題報錯是因為,我的系統目前用的是opencv3.2,二而程式碼中要求用opencv2中的nonfree這個資料夾中的一些檔案,這個資料夾在opencv3中是沒有的。

所以搜尋一波之後,重新下載安裝了opencv以及對應的opencv_contrib(額外的安裝包)

具體操作可以見原網址:

https://blog.csdn.net/Real_Myth/article/details/82690715

可是還是沒用。

各種招都使了,病急亂投醫。最後https://blog.csdn.net/weixin_41896508/article/details/80795239裡的方法,讓我make不出錯,也就是安裝了裡面的各種包吧。真讓人頭大。

opencv/opencv-3.2.0/build/opencv_lapack.h:2:45: fatal error: LAPACKE_H_PATH-NOTFOUND/lapacke.h: 沒有那個檔案或目錄
解決方法:

$ sudo apt-get install liblapacke-dev checkinstall
 

也算是成功地安裝好了含有opencv_contrib的opencv3.2.0了吧。簡直感動。

``````````````````````````````````````````````````````````````````````````````````````````````````````````

此時再回過頭來看,我們們前面的opencv2/nonfree/檔案缺失的問題,問題還是存在。所以應該是opencv2的問題,重新安裝一個吧。安裝 opencv-2.4.13.5

安裝2.4.13.5的時候,主要結合了2個博文:

https://blog.csdn.net/HP605962422/article/details/82897326

https://blog.csdn.net/llfjcmx/article/details/81238766

主要流程按照第一個連結走,但是由於之前已經有了opencv3,所以會報很多錯誤,按照第二個博文,在usr/local裡面新建資料夾,並且cmake的路徑加在此處時,make可以到100%,但還是會存在錯誤。

但都是與eigen相關的錯誤,粗暴地重灌了eigen3.3.5

還是沒用。(繼續微笑)到這已經摺騰了3天了,心塞。

試了安裝其他版本的opencv2,報錯也是一樣的,以為是opencv3的存在會影響2的安裝,於是解除安裝了3,再安裝2,錯誤依舊。

 

 

 

 

 

 

 

 

當你使用的是cmake工具時,在CMakeLists.txt中加入路徑即可使用opencv3.3,如下圖:

當你想返回使用opencv2時,將find_package(OpenCV 3.3 REQUIRED )換成find_package(OpenCV REQUIRED )即可,並將該程式碼上面一行和下面倆行刪除即可。

相關文章