Window 10 PCL-1.91+VS2017 源碼編譯以及安裝pcl


 

        (1)第三方庫做了簡單的了解,對於這些開源庫的了解有助於更全面的了解PCL這個開源項目。

           VTK是以及基於OPENGL封裝,,(visualization toolkit)是一個開源的免費軟件系統,主要用於三維計算機圖形學、圖像處理和可視化。Vtk是在面向對象原理的基礎上設計和實現的,它的內核是用C++構建的,包含有大約250,000行代碼,2000多個類,還包含有幾個轉換界面,因此也可以自由的通過Java,Tcl/Tk和Python各種語言使用vtk,是常用的三維可視化開源庫   

           boost 是一個可移植、提供源代碼的C++庫,作為標准庫的后備,是C++標准化進程的開發引擎之一,是為C++語言標准庫提供擴展的一些C++程序庫的總稱,發起人是c++標准委員會,常見功能如下:

      Regex
      正則表達式庫
      Spirit
      LL parser framework,用C++代碼直接表達EBNF
      Graph
      圖組件和算法
      Lambda
      在調用的地方定義短小匿名的函數對象,很實用的functional功能
      concept check
      檢查泛型編程中的concept
      Mpl
      用模板實現的元編程框架
      Thread
            可移植的C++多線程庫
            Python
           把C++類和函數映射到Python之中
       Pool
      內存池管理
          smart_ptr
    FLANN庫全稱是Fast Library for Approximate Nearest Neighbors,它是目前最完整的(近似)最近鄰開源庫。不但實現了一系列查找算法,還包含了一種自動選取最快算法的機制,在一個度量空間X給定一組點P=p1,p2, …,pn,這些點必須通過以下方式進行預處理,給第一個新的查詢點q屬於X,快速在P中找到距離q最近的點,即最近鄰搜索問題。最近鄰搜索的問題是在很多應用領域是一個重大問題,如圖像識別、數據壓縮、模式識別和分類.在高維空間中解決這個問題似乎是一個非常難以執行任務,沒有算法明顯優於標准的蠻力搜索。因此越來越多的人把興趣點轉向執行近似最近鄰搜索的一類算法,這些方法在很多實際應用和大多數案例中被證明是足夠好的近似,比精確搜索算法快很大的數量級  
    OpenI是一個基於網絡的商務智能應用程序。是一個徹頭徹尾的開發的解決方案,輕松可視化OLAP數據,關系型數據庫管理系統數據挖掘工具和直觀的建立和發布交互式的報告,分析。它用於制作Web OLAP報表,可以部署在任何J2EE服務器中,支持交互式OLAP報表的發布。它能夠使用關系型數據源和基於XMLA的數據源。是一個Java開發的Web應用,能對OLAP服務器、關系數據庫和數據挖掘服務器進行分析和報表展示,非常易於使用和部署,界面美觀友好,后續還將支持數據挖掘和ETL等
     EIGEN 是一個高層次的C ++庫,有效支持線性代數,矩陣和矢量運算,數值分析及其相關的算法。Eigen是一個開源庫,從3.1.1版本開始遵從MPL2許可,這個庫只需要包含頭文件就可以,因為它所有的開發都是基於STL。
             glew,OpenGL擴展庫是個簡單的工具,用於幫助C/C++開發者初始化擴展(OpenGL擴展功能)並書寫可移植的應用程序。GLEW當前支持各種各樣的操作系統,包含Windows,Linux,Darwin,Irix與Solaris。
     glew這個庫在使用cmake3.12進行編譯時候報錯了,所以從對應的官網下載了zip文件,直接從git 上下載的文件是linux系統上運行的,一些腳本沒法運行。
     Qhull  用於計算三維點的凸包
  (2)所需資料准備
          pcl 源碼 git_clone  pcl-1.9.1 https://github.com/PointCloudLibrary/pcl.git
          第三方庫准備以及安裝   pcl-1.8.1-pdb-msvc2017-win64.zip(包含使用所需的Qull flann VTK Boost eigen openni  ),注意OPENNI需要安裝,同時注意include文件的包含層次,尤其是對於eigen。
          QT 的安裝(之前配置opencv時候已經將對應的環境路徑配置好了)
      (3)Cmake gui編譯配置
               a.在gitclone 的文件夾中新建bin文件夾路徑,如果在外邊,會缺失一些庫如下
 
               

 

 

           
 
          config第一次報錯出現的boost報錯
           添加boost庫的引用

 

     添加eigen 以及vtk 引用

 

     vtk 如果沒法添加,通過add entry添加

 

  添加flann引用

 

 添加Qhull 引用

   編譯還是提示缺失glew 庫,又從glew下載了對應的zip文件

 

 如此config就ok了,屬於對應lib庫的單獨添加時候區分debug庫與release庫,有的二者區分是通過-dg和沒有區分,有的是通過沒有后綴和-s區分

(4)Open project進行編譯

     首先進行allbuild編譯所有的模塊(157個成功無報錯),然后install( 158個成功無報錯),最后package(報錯一個,set  path ,cd 這個錯誤沒有解決,但是后續環境配置成功了)打包到D盤。

 (5)環境配置

 

 (6)通過cmake gui 編譯對於的pcl入門的源碼

    注意在vs打開時候需要以管理員的身份打開,直接點exe運行的時候需要以管理員的身份運行,否則會提示缺少pcl dll。

  (7)總結反思

        window 系統去跨平台的配置對應的git 源碼之所以麻煩事由於開源的代碼一般都是基於linux平台開發,里邊的腳本以及cmake 使用相當方便。

       其次window系統在安全性方面比較高,這就時候安裝完對應的庫之后還需要去給與對應的庫以環境變量,需要set path 測試。

       沒有直接去編譯VTK等庫,后續可能需要。

 
 
 
     


免責聲明!

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



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