PCL:全程详解 VS2010+PCL配置
????? ? 渾渾噩噩半年時間,終于不得不干點和機器人有關的東西。ICRA和IROS推薦的三維圖形庫—點云庫,幾乎成了機器人視覺算法的標配。
??????? 參考了幾篇文章,最后終于配置成功。
下面是文章地址:
???????? 這個有點看頭,累積較多,不過還沒仔細體會:http://blog.csdn.net/chen_nan/article/details/7055651?reload
????? ?? 這個文章較短,不過說出了一小點有用的東西,若是看過介紹論文,可不必看:http://qing.blog.sina.com.cn/1455173150/56bc2e1e330005pk.html
?????
(一):安裝軟件包和庫
? ?? ?? 安裝好VS2010后,安裝一次性安裝包,下載地址:http://www.pointclouds.org/downloads/windows.html
準備工作:
a)? 獲取All in one安裝包,PCL提供了配置為Visual Studio 2010的 32位和64位、 Visual Studio 2008的32位和64位下的該安裝包,該包包含了PCL中所使用全部第三方編譯包,除了Qt編譯包;
b) 獲取All in one包對應的PDB文件包,該包用于后期單步調試時使用;
c)? 獲取PCL源碼包;
d)? 安裝開發工具Visual Studio 2010或Visual Studio 2008和cmake開發工具,需要cmake版本大于2.8.3,主要考慮到PCL中用到了高版本的一些宏定義,低版本不兼容。
注意:http://pointclouds.org/downloads/windows.html可下載all in one安裝包和其對應的PDB文件包,源碼包可在http://pointclouds.org/downloads/處下載。以上所有包都在參考文獻【1】提供的光盤中含有。如果用戶安裝了RGBD相關設備驅動與中間件,則需要卸載OpenNI相關的驅動、中間件,避免與all in one提供的驅動與中間件沖突,如果沒有,忽略此項,OpenNI、RGBD相關的內容后續章節IO有介紹。圖1所示,為準備工作最終需要的文件。
1.完成準備工作將會有三個包
安裝:
????? 安裝過程很簡單(筆者配置為Visual C++ 2008 Express Edition、Cmake 2.8.5、32位系統),點擊安裝上一步所準備的文件PCL-1.5.1-AllInOne-msvc2008-win32.exe。運行如圖2到8,按照提示默認安裝即可,如果需要改變安裝路徑到非C:盤,后面cmake配置時需要自行設置各個第三方庫的路徑以及PCL頭文件與鏈接庫路徑。
2歡迎使用界面與PCL許可界面
3安裝選項與安裝路徑界面
4選擇開始菜單界面與安裝組建庫選擇界面
5安裝組建界面展開圖示
6安裝OpenNI界面
7安裝Primesense Sensor驅動界面
8完成界面與最終安裝好的截圖
9第三方庫文件夾
10 ?pdb文件夾中內容
(二):編譯庫文件:
??? ? Windows下從預編譯包搭建PCL開發環境,轉自官方:http://www.pclcn.org/study/shownews.php?lang=cn&id=33
?????? 建立兩個文件,源程序文件project_inliers.cpp和cmake 配置文件CMakeLists.txt內容拷貝鏈接http://pointclouds.org/documentation/tutorials/project_inliers.php#project-inliers中對應的代碼及Cmakelists的代碼(此處也可以從參考文獻【1】中test文件拷貝對應的文件),放在同一文件夾source下,在source同一目錄下建立camke-bin文件夾。
?
11?測試需要建立的文件
打開cmake,設置源文件目錄與編譯目錄,如圖12所示。
12設置cmake需要的路徑
13 camke中選擇對應的編譯器
14?配置與生成
選擇對應的編譯器,如圖13所示,筆者選擇對應visual studio 9 2008,點擊finish,再點擊配置與生成,如圖14所示,即可得到工程文件,如圖15所示。
15生成的工程文件
16編譯工程文件
17?測試exe文件運行結果
??????? 到此就完成了PCL在windows上的開發環境搭建,用戶可以自行體驗官方網站提供的大量實例代碼了,如果用戶只是使用穩定的PCL版本。(三):搭建開發環境:
.安裝完畢后就測試一下PCL的效果吧,要注意項目對應的包含目錄、庫目錄、庫文件(LIB)和運行環境(DLL)。
用http://www.pointclouds.org/documentation/tutorials/pcl_visualizer.php#pcl-visualizer上面的例程試一試,新建工程,粘貼代碼……
在包含目錄下添加:
C:\Program?Files\PCL?1.5.1\3rdParty\Boost\include;
C:\Program?Files\PCL?1.5.1\3rdParty\Eigen\include;
C:\Program?Files\PCL?1.5.1\3rdParty\Flann\include;
C:\Program?Files\PCL?1.5.1\3rdParty\Qhull\include;
C:\Program?Files\PCL?1.5.1\3rdParty\VTK\include\vtk-5.8;
C:\Program?Files\OpenNI\Include;
C:\Program?Files\PCL?1.5.1\include\pcl-1.5;
(對應自己機子上PCL的位置,如果為了CMAKE方便很多會放在根目錄下。即C:\PCL)
在庫目錄下添加:
C:\Program?Files\PCL?1.5.1\3rdParty\Boost\lib;
C:\Program?Files\PCL?1.5.1\3rdParty\Qhull\lib;
C:\Program?Files\PCL?1.5.1\3rdParty\Flann\lib;
C:\Program?Files\PCL?1.5.1\3rdParty\VTK\lib\vtk-5.8;
C:\Program?Files\PCL?1.5.1\lib;
C:\Program?Files\OpenNI\Lib;
在附加依賴項上添加:
?opengl32.lib
pcl_kdtree_debug.lib
pcl_io_debug.lib
pcl_search_debug.lib
pcl_segmentation_debug.lib
pcl_range_image_border_extractor_debug.lib
pcl_apps_debug.lib
pcl_features_debug.lib
pcl_filters_debug.lib
pcl_visualization_debug.lib
pcl_common_debug.lib
flann_cpp_s-gd.lib
libboost_system-vc100-mt-gd-1_47.lib
libboost_filesystem-vc100-mt-gd-1_47.lib
libboost_thread-vc100-mt-gd-1_47.lib
libboost_date_time-vc100-mt-gd-1_47.lib
libboost_iostreams-vc100-mt-gd-1_47.lib
openNI.lib
vtkalglib-gd.lib
vtkCharts-gd.lib
vtkCommon-gd.lib
vtkDICOMParser-gd.lib
vtkexoIIc-gd.lib
vtkexpat-gd.lib
vtkFiltering-gd.lib
vtkfreetype-gd.lib
vtkftgl-gd.lib
vtkGenericFiltering-gd.lib
vtkGeovis-gd.lib
vtkGraphics-gd.lib
vtkhdf5-gd.lib
vtkHybrid-gd.lib
vtkImaging-gd.lib
vtkInfovis-gd.lib
vtkIO-gd.lib
vtkjpeg-gd.lib
vtklibxml2-gd.lib
vtkmetaio-gd.lib
vtkNetCDF-gd.lib
vtkNetCDF_cxx-gd.lib
vtkpng-gd.lib
vtkproj4-gd.lib
vtkRendering-gd.lib
vtksqlite-gd.lib
vtksys-gd.lib
vtktiff-gd.lib
vtkverdict-gd.lib
vtkViews-gd.lib
vtkVolumeRendering-gd.lib
vtkWidgets-gd.lib
vtkzlib-gd.lib
這里要注意PCL引用到的其他庫文件一定要加進去,VTK的庫很多,而且依賴關系我看得很亂,所以為了方便就全加進去了。
如果沒有加完整,很多信息提示錯誤的,之前忘了加一個什么庫,導致很多error?LNK2019,還讓我重裝了很多次……?
注意庫要對應debug和release版,debug后面一般都有-gd或者_debug的,看看就能分出來了。對應錯了還會有error?LNK:
error?LNK2038:?mismatch?detected?for?'_ITERATOR_DEBUG_LEVEL':?value?'2'?doesn't?match?value?'0'?in??XXXX.......
這時應該可以看到成功生成的信息了:
???????? 別著急運行,會發現還沒做完的。
???? 我們還要把對應的dll加到環境中,可以直接把用到的那些dll放到應用程序搜索到的位置,如cpp對應的目錄。(=_=!好笨的方法,不過我就是這樣做的……)或者是把dll的目錄設置到環境中去(在安裝ALL IN ONE 時已經自動添加)
Tips:
?????? 對于pcl_range_image_border_extractor_debug.lib無法找到問題,先刪除包含之,編譯通過.
總結
以上是生活随笔為你收集整理的PCL:全程详解 VS2010+PCL配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人力资源ssc什么意思
- 下一篇: 科普宣传标语文案精选30句