Windows下PCL1.9.1配置(编译源码)
PCL1.9.1并沒有支持vs2015版本的exe版本,然后需要下載PCL的源碼重新自己CMake編譯出vs2015版本的
編譯的目的:
1、得到支持vs2015的版本的PCL1.9.1
前期準備
1、下載PCL源碼:https://github.com/PointCloudLibrary/pcl
2、下載安裝版(主要是為了看下,第三方庫的版本):https://github.com/PointCloudLibrary/pcl
boost:pcl1.9.1對應的是boost1.68版本的
vtk:pcl1.9.1對用的版本是8.1.0版本的?
其他幾個三方庫不用管,直接用安裝版中的庫即可
3、下載第三方庫
boost,那個版本均可,因為自己編譯源碼,版本無所謂,這里是1.69版本 https://www.boost.org/users/download/
VTK,這里是8.0版本 https://vtk.org/download/ (因為8.2版本在用的過程中總是有個彈窗很煩,就用了8.0的)
開始編譯之前,看下下載的VTK源碼的的文件結構:(注意下面的VTK版本是8.2的,編譯8.0的一樣的編譯)
這里不像安裝版中就會直接有include、lib、bin這樣的文件夾的,我們編譯的一個目的就是編譯出這些文件夾來,下圖是安裝版的VTK文件夾結構:(我們編譯的目的就是為了得到這樣的幾個文件)
開始編譯VTK8.2.0
注意這里的OpenGL是選擇2,實際上只有2可以選(和之前編譯VTK8.0版本的時候不一樣,8.0版本是選擇的OpenGL)
注意上面的BUILD_TESTING不需要勾選,勾選后在編譯的時候回非常之慢。
然后就是得到VTK.sln,vs2015打開Debug和Release下分別生成即可
編譯Debug就生成了Debug版本的bin、cmake、include、lib、share五個文件,然后建一個Debug文件夾,放起來。
同理再次編譯Release就再次得到Release版本的五個文件,建Release文件夾,放起來,這樣就得到了兩個版本的了,如下:
編譯boost64位
編譯64bit的boost庫。執行bjam address-model=64即可。bjam address-model=64表示編譯的是64bit的boost,而bjam address-model=32表示編譯32bit的boost
生成的lib包就在stage目錄下,然后我們需要就該lib包拿出來作為pcl的第三方依賴包,注意這里的lib下面包含了Debug和Release兩個版本的
將目錄下的boost作為include目錄,和上面的lib包合在一起作為PCL的boost第三方依賴項
編譯eigen3
第一次編譯按如下做修改:
再次編譯,編譯成功
然后生成
然后vs打開工程,依次all_build,然后install即可,注意eigen不分debug和release版本的。
最后編譯PCL1.9.1 vs2015版本
第一次編譯報錯,如下:
因為找不到eigen的路徑,在cmake中設置上面編譯好的路徑即可,然后把要放編譯好的pcl路徑改下,如下:
表示,我需要將編譯好的pcl放在這里,繼續編譯,然后報錯:
很簡單,需要配置pcl必須依賴的flann的路徑,設置如下:
注意的是,第一個是include的路徑,第二個是表示release版本的位置,第三個是debug的版本位置,繼續編譯,然后繼續報錯如下:
繼續找不對的路徑更改即可:(注意這里找呢,就主要找pcl依賴的那六個三方庫,將位置改對了即可),改動的位置如下:不用管openNI,
至此完成一半。
然后open project,開始用vs編譯,注意了,到這一步,其實我們的pcl里面是沒有東西的,必須的vs編譯之后東西就會出現在這里
先在debug下ALL_BUILD,然后INSTALL,
然后在release下重復一遍,這樣就可以得到debug和release兩個版本的pcl庫了,而且是支持vs2015的。
注意問題
總結:因為我們編譯PCL源碼,而源碼又需要幾個三方庫,所以一定要主要在CMake的時候,把對應的幾個三方庫都依次包含進來
1、boost路徑
2、qhull路徑
3、vtk路徑
4、flann路徑
5、openni2路徑(其實這個不需要也可以的)
6、eigen路徑
問題1:有時編譯快完成的時候會報下面的錯誤:
其實這個GTEST文件并不需要,去掉即可
要是上面去掉后重新編譯還是報錯,就如下把勾選去掉。
問題2:boost路徑的設置
下面是在配置中勾選的一些選擇,作為配置參考(用到了什么PCL的模塊就勾選什么)
祝大家配置環境成功
資源
三維點云論文及相關應用分享
【點云論文速讀】基于激光雷達的里程計及3D點云地圖中的定位方法
3D目標檢測:MV3D-Net
三維點云分割綜述(上)
3D-MiniNet: 從點云中學習2D表示以實現快速有效的3D LIDAR語義分割(2020)
win下使用QT添加VTK插件實現點云可視化GUI
JSNet:3D點云的聯合實例和語義分割
大場景三維點云的語義分割綜述
PCL中outofcore模塊---基于核外八叉樹的大規模點云的顯示
基于局部凹凸性進行目標分割
基于三維卷積神經網絡的點云標記
點云的超體素(SuperVoxel)
基于超點圖的大規模點云分割
更多文章可查看:點云學習歷史文章大匯總
SLAM及AR相關分享
【開源方案共享】ORB-SLAM3開源啦!
【論文速讀】AVP-SLAM:自動泊車系統中的語義SLAM
【點云論文速讀】StructSLAM:結構化線特征SLAM
SLAM和AR綜述
常用的3D深度相機
AR設備單目視覺慣導SLAM算法綜述與評價
SLAM綜述(4)激光與視覺融合SLAM
Kimera實時重建的語義SLAM系統
SLAM綜述(3)-視覺與慣導,視覺與深度學習SLAM
易擴展的SLAM框架-OpenVSLAM
高翔:非結構化道路激光SLAM中的挑戰
SLAM綜述之Lidar SLAM
基于魚眼相機的SLAM方法介紹
往期線上分享錄播匯總
第一期B站錄播之三維模型檢索技術
第二期B站錄播之深度學習在3D場景中的應用
第三期B站錄播之CMake進階學習
第四期B站錄播之點云物體及六自由度姿態估計
第五期B站錄播之點云深度學習語義分割拓展
第六期B站錄播之Pointnetlk解讀
[線上分享錄播]點云配準概述及其在激光SLAM中的應用
[線上分享錄播]cloudcompare插件開發
[線上分享錄播]基于點云數據的?Mesh重建與處理
[線上分享錄播]機器人力反饋遙操作技術及機器人視覺分享
[線上分享錄播]地面點云配準與機載點云航帶平差
點云PCL更多活動請查看:點云PCL活動之應屆生校招群
掃描下方微信視頻號二維碼可查看最新研究成果及相關開源方案的演示:
如果你對本文感興趣,請點擊“原文閱讀”獲取知識星球二維碼,務必按照“姓名+學校/公司+研究方向”備注加入免費知識星球,免費下載pdf文檔,和更多熱愛分享的小伙伴一起交流吧!
以上內容如有錯誤請留言評論,歡迎指正交流。如有侵權,請聯系刪除
掃描二維碼
? ? ? ? ? ? ? ? ? ?關注我們
讓我們一起分享一起學習吧!期待有想法,樂于分享的小伙伴加入免費星球注入愛分享的新鮮活力。分享的主題包含但不限于三維視覺,點云,高精地圖,自動駕駛,以及機器人等相關的領域。
分享及合作方式:群主微信“920177957”(需要按要求備注) 聯系郵箱:dianyunpcl@163.com,歡迎企業來聯系公眾號展開合作。
點一下“在看”你會更好看耶
總結
以上是生活随笔為你收集整理的Windows下PCL1.9.1配置(编译源码)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PCL中点云的超体素(SuperVoxe
- 下一篇: PCL安装常见的错误集合解决方案(一)