Ubuntu16.04/18.04 下PCL1.8.1、opencv4.1.2 的卸載與安裝


  再寫這篇博客時,本文方法已經在筆記本Ubuntu和VM虛擬機成功安裝PCL1.8.1,並且通過測試。 下文方法同樣適用於ubuntu18.04。

  通過以下命令可以快速安裝pcl1.7.1,但是不推薦,據說因為在ubuntu16.04中,由於vtk版本原因造成一些bug,這里不想深究,所以,打算自己編譯。至於ubuntu 14.04沒用過(可以試試下面指令)。

sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
sudo apt-get update # for ubuntu 16.04 sudo apt-get install libpcl-dev # for ubuntu 14.04 #sudo apt-get install libpcl-all 以上方法可能出現的問題:
1、error: 有幾個軟件無法下載, 要不sudo apt-get update 或-- fix-missing 試一試? 解決: sudo apt-get install libpcl-dev --fix-missing(至此,一般能夠順利安裝) 2、error: vtkproj4.so丟失 解決:對於編譯好的點雲庫(PCL-1.7),附帶安裝了VTK-6.2.0,以及各種雜七雜八的依賴庫。安裝后的編譯過程中出現了庫文件vtkproj4.so丟失的問題。
這個問題與我另一篇尋找缺失庫文件的文章不同,這是VTK-6.2.0 (build10)中的BUG,而原作者已經在build11中修正了該問題。 這個問題有一個非常簡單的解決方法:在/usr/lib文件夾下,我發現了vtk5.10的相關庫文件,考慮到5.10與6.2版本間的差距應該不大,我直接進行了軟鏈接…… sudo ln -s /usr/lib/libvtkproj4.so.5.10 /usr/lib/libvtkproj4.so

1、卸載有問題的PCL1.7(vtk bug等等,例如:不能顯示深度圖)

 

sudo rm -r build
sudo rm -r /usr/include/pcl-1.7 /usr/share/pcl /usr/bin/pcl* /usr/lib/libpcl*

執行上述命令, 上述四個目錄中,可能會找不到某些目錄。可以自己去 usr 目錄下搜索 關鍵字 pcl 或者 libpcl。本人在目錄 /usr/libx86_64-linux-gnu 下找到 相關libpcl*文件,刪除即可,刪除命令同上。

 

2、編譯&&安裝PCL1.8.1

pcl的可視化庫版本關系【你要是不知道其他版本的對應的vtk版本,推薦可以去下載pcl源碼,去 3rdparty文件夾路徑下查詢vtk版本】:

1.   pcl-1.7.2          vtk-5.10.1 / vtk-6.2.0

2.   pcl-1.8.1          vtk-7.1.1

3.   pcl-1.9.1          vtk-8.2.0(建議8.1)

這讓人想起非線性優化庫 G2O 安裝時,不同版本的G2O也需要不同版本的 libqglviewer類似。本文安裝PCL1.8.1,所以選擇VTK-7.1.1。在此之前先執行以下命令安裝 PCL底層依賴(逐行執行)。

PCL依賴的庫很多,例如:QHull(查找凸包算法)、VTK(可視化)、Flann(最近鄰搜索算法)、Eigen、Boost、OpenNI2(這個庫可以提供當年一些供應商提供的設備的驅動,例如:Kinect2.0...為什么是當年? 首先OpenNI2 在N年前已經停止維護,PCL提供接口的一些設備如:深度相機也已經停產,所以...雞肋);PCL本身提供的三維視覺算法不算很多,順便:PCL這個庫體驗跟opencv等開源庫比起來...,或許以后會去學習CloudCompare開源算法。

sudo apt-get update

sudo apt-get install git build-essential linux-libc-dev sudo apt-get install cmake cmake-gui sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev sudo apt-get install mpi-default-dev openmpi-bin openmpi-common sudo apt-get install libflann1.8 libflann-dev sudo apt-get install libeigen3-dev libboost-all-dev sudo apt-get install libqhull* libgtest-dev sudo apt-get install freeglut3-dev pkg-config sudo apt-get install libxmu-dev libxi-dev sudo apt-get install mono-complete sudo apt-get install libopenni-dev libopenni2-dev sudo apt-get install libx11-dev libxext-dev libxtst-dev libxrender-dev sudo apt-get install libxmu-dev libxmuu-dev sudo apt-get install build-essential libgl1-mesa-dev libglu1-mesa-dev

  注意:這里 libopenni2-dev 也許會顯示無法安裝,換一個軟件源就行了,我是換到aliyun了。

VTK7.1.1下載鏈接:https://www.jianshu.com/go-wild?ac=2&url=https%3A%2F%2Fwww.vtk.org%2Ffiles%2Frelease%2F7.1%2FVTK-7.1.1.zip

PCL1.8.1下載鏈接:https://codeload.github.com/PointCloudLibrary/pcl/zip/pcl-1.8.1

 

  note: in the ubuntu18.04,we can not find the libflann1.8!!! , but i have found the "libflann1.9"by  using the conmad"apt-cache search libflann", and just install it, ojbk!!!

 

解壓,安裝VTK

cd VTK-7.1.1

mkdir build && cd build cmake .. cmake-gui      ###操作見下面文字###  make sudo make install

 

勾選“VTK_GROUP_QT”,改“VTK_QT_VERSION” = 5,將CMAKE_BUILD_TYPE 改為Release(圖中還沒改,懶得換圖,圖也是盜的,見文末鏈接),點擊Configure,generate【最后一次config應該是所有紅色部分消失

  很不幸,在虛擬機中用cmake-gui配置Qt版本時候報錯(這跟虛擬機沒什么關系,可能原因是Qt版本),如下圖:

 

   這里起初的想法是,更換一個Qt版本?太麻煩。既然缺少某個Qt庫,可以使用如下指令搜索:

# 這條指令價值500塊
apt-cache search Qt5X11Extras # 顯示結果如下 libqt5x11extras5 - Qt 5 X11 extras libqt5x11extras5-dev - Qt 5 X11 extras development files # 這里安裝其中一個庫 sudo apt-get install libqt5x11extras5-dev

  接着對於VTK,我們關閉並重新打開cmake-gui,重新生成,順利生成, 別忘記sudo make install 。

  還可能在cmake-gui的時候,遇到無法找到  Qt5_DIR-NOTFOUND  。由於沒有安裝,所以這里要提前安裝好Qt5。我這里選擇Qt5.9.9,裝完以后,還是不能自動檢測到Qt路徑,手動添加吧,如下圖:

 

 

 

 點擊configure,直到紅色消失。

  接着解壓、編譯、安裝PCL

cd pcl-1.8.1

mkdir build && cd build cmake .. cmake-gui      ###操作見下面文字###  make -j4         ###編譯要好久,別開太多東西,小心卡機###  sudo make install

檢查Qt5的路徑,檢查vtk版本,選擇openni2,點擊Configure,generate

 3、注意

  在安裝PCL的時候,看清楚...,不要直接用命令行 cmake... 這樣會直接默認生成releasse,我們這在cmake-gui中手動設置,如圖,

  debug和release版本各有自己的優勢和缺陷。 debug版本為了追求更全面的調試信息而放棄了速度; release版本為了追求性能優化而拋棄了調試信息。如果用戶既需要調試代碼,又無奈於debug版本的速度,那么你便可以開始考慮RelWithDebInfo這個版本了。顧名思義,從這個模式的名稱來看,它是一種含有調試信息的Release版本。那么它相當於是結合了Debug和Release版本的優點的一個版本。以下是Stackoverflow上面的關於比較Debug和RelWithDebInfo版本區別的描述: 

http://stackoverflow.com/questions/1239845/build-mode-relwithdebinfo

  本人在ubuntu下用的IDE為Clion,我們這里重新編譯並安裝好PCL之后,在clion->File->Setting->ToolChains 中首先將調試器改為 GDB(這個很關鍵,這樣讓本來就很卡的Clion在調試的時候,速度變換了許多,)繼續再將CMake的build type改為RelWithDebInfo,編譯速度也加快了。

  以上..., 否則使用CLion調試PCL中的的 pcl::PointXYZ 類型變量,很痛苦。

 小結:

1、上面安裝VTK可視化庫,記得改為Release,

2、安裝PCL的時候,如果不知道命令行怎么設置為:按RelWithDebInfo方式編譯,可以用cmake-gui設置為這種方式,

3、CLion將工具鏈的調試器設置為GDB,將CMake的生成類型設置為RelWithDebInfo(緩解卡B帶來的痛苦...)

4、由於從PCL1.7.1更換PCL1.8.1版本,之前基於CLion構建的工程全部作廢,新建工程再寫吧(理論上將 相對目錄下的生成的中間文件手動rm 掉是可以的,懶得折騰,索性重建工程)

 

參考鏈接:https://www.jianshu.com/p/548234bb88fc

                  https://www.cnblogs.com/zhuxuekui/p/9663335.html

 

In the QtCreator5.9.9, when i complier the pcl demo by qmake, "error while loading shared libraries: libpcl_common.so.1.8", i do not why, maybe... i  have deleted the source directory of  "PCL1.8.1" and "VTK"; the falowing is the .pro file of Qt

1 INCLUDEPATH += /usr/local/include/pcl-1.8
2 LIBS += /usr/local/lib/libpcl_*.so

nice, i fuck the problem by do"sudo ldconfig ", please remember it!!!

 

 

 

 

 

// opencv 待具體

pkg-config opencv --modversion
pkg-config opencv --libs

// 庫的卸載參考: https://www.cnblogs.com/kinwing/p/11829546.html

// error: ... If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvShowImage'

// solution: https://stackoverflow.com/questions/28776053/opencv-gtk2-x-error
// <1> install libgtk2.0-dev
// <2> rebuild opencv4.1.2 with VPN, you have to know how to set cmake options like these:

cmake
-D CMAKE_BUILD_TYPE=RELEASE
-D CMAKE_INSTALL_PREFIX=/usr/local
-D WITH_TBB=ON
-D BUILD_NEW_PYTHON_SUPPORT=ON  ## no occur
-D WITH_V4L=ON
-D INSTALL_C_EXAMPLES=ON
-D INSTALL_PYTHON_EXAMPLES=ON
-D BUILD_EXAMPLES=ON
-D WITH_QT=ON
-D WITH_GTK=ON
-D WITH_OPENGL=ON ..


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM