如何通過源碼編譯方式安裝PCL
對於很多想學習PCL的同學而言,往往會被如何安裝困擾很長時間。我就是這其中的一員,為了不讓大家在安裝問題上浪費太多時間,我決心寫下這篇小小的隨筆,希望對大家有所幫助。
-
下載需要的軟件包
- Visual Studio [我用的是VS2012,所以這里以這個版本作為基礎進行介紹]
- cmake-3.1.0(二進制安裝包)
- PCL-1.8.0(源碼)
- vtk-6.2.0(源碼)
- boost-1.58.0(源碼)
- eigen-3.2.5(源碼)
- flann-1.8.4(源碼)
- qhull-2012.1(源碼)
- openni2(OpenNI-Windows-x64-2.2.msi二進制安裝包)
請不要問我,這些軟件從哪里下載。請到相應的官網去下載吧,利用google,很好找的。這里只是列出了必須安裝的一些組件,如果你使用PCL進行開發涉及到了諸如cuda等組件,請自行下載,並參照后面的步驟進行安裝。
-
軟件的編譯與安裝
在開始介紹如何安裝之前,我先向大家介紹一下我在配置安裝時的目錄結構:
在D:\pcl\目錄下存放所有的源代碼文件;在D:\programs\pcl_suites\下存放所有的編譯好的項目文件和最終構建的類庫文件[編譯好的文件放在xxx-x.y.z文件夾(如flann-1.8.4)下;構建的類庫文件放在xxx-install文件夾(如flann-install)下]-
VS和cmake的安裝
無限下一步即可,VS2010、VS2012、VS2013均可,而cmake版本要大於2.8.6,此處不再贅述。 -
openni2的安裝
同樣是無限下一步即可,請注意自定義安裝目錄 -
vtk、eigen、flann、qhull的編譯
使用cmake-gui,將源代碼目錄和編譯結果的存放目錄天道指定位置,運行Configure,將不必要的編譯選項去除,如果沒有錯誤的話,點擊Generate即完成編譯。 -
vtk、eigen、flann、qhull的安裝
雙擊x.sln解決方案文件,即可打開由cmake生成的VS工程文件,對ALL_BUILD進行“生成解決方案操作”。當全部生成后,對INSTALL進行“生成解決方案操作”即可完成安裝。 -
boost的編譯
打開VS開發者命令提示符窗口,切換到boost源碼的根目錄下,在命令行執行.\boostrap.bat命令即可完成編譯。 -
boost的安裝
在VS開發者命令提示符窗口,切換到boost源碼的根目錄,在命令行執行,\b2 install --prefix=D:\programs\pcl_suites\boost-install\即可完成安裝。 -
PCL的編譯
使用cmake-gui,將源代碼目錄和編譯結果的存放目錄填入指定位置,點擊Configure。選中cmake的Advanced和Grouped選項,對顯示有“xxx-NOTFOUND”的項目根據組件的存放位置進行設定。其中boost、flann、vtk、eigen為必須配置的選項,否則會報錯。配置沒錯誤后,點擊Generate即可完成編譯。
tips:由於eigen3x版本變化較大,因此需要手動將源代碼中的FindEigen3.cmake文件放在cmake的D:\programs\cmake\share\cmake-3.1\Modules目錄下,否則會報錯。 -
PCL的安裝
使用VS打開cmake生成的PCL.sln,對ALL_BUILD進行生成解決方案操作,該過程比較長(我的機器大概跑了將近一個小時),請耐心等待。而后,對INSTALL進行生成解決方案操作,即可完成安裝。
-
-
運行第一個小例子
這里使用到的例子是pcl官網上的passthrough的濾波實例,大家可以去 http://pointclouds.org/documentation/tutorials/passthrough.php#passthrough 下載。
在VS中進行編譯運行時,有如下幾個注意事項:
- 在項目屬性->配置屬性->VC++目錄中,對包含目錄和庫目錄進行配置。包含目錄要添加pcl、boost、eigen的include路徑;庫目錄要添加pcl的lib路徑
- 在項目屬性->配置屬性->C/C++->命令行中,添加-D_SCL_SECURE_NO_WARNINGS選項。
- 在項目屬性->配置屬性->鏈接器->輸入->附加依賴項中將pcl安裝后產生的所有.lib文件的路徑添加至此。
- 在項目的Debug目錄下放置所有pcl安裝后產生的dll文件。
希望大家能快速裝好PCL,在圖像處理領域勇攀高峰!加油_