win10編譯PCL cuda部分源碼並安裝:cmake3.10+vs2015+pcl1.8.1+cuda8.0GA2
一、平臺軟件版本:
win10:1809
cmake3.10.2
https://cmake.org/download/
Older Releases
Host Link
kitware https://cmake.org/files
github https://github.com/Kitware/CMake/releases
vs2015社區版14.0.23XX
Cuda8.0GA2
PCL1.8.1 Allinone msvc2015 64位 +源碼+pdb
https://github.com/PointCloudLibrary/pcl/releases
注意:
-
選擇版本搭配:在編譯過程中發現;PCL官方只提供了PCL1.9.X只提供了pcl-1.9.1-pdb-msvc2017文件,怕只支持vs2017,因此使用了PCL1.8.1。
-
後續也試驗過,採用cuda9.0+vs2017+PCL1.9.1出現nvcc之類的錯誤,好像是cuda與vs2017的兼容問題,導致cuda部分源碼編譯失敗;github中也出現過許多這個問題;
-
奇特的是vs2015能編譯cuda9.0+PCL1.9.1;但是由於PCL1.9.X缺少1.9.1-pdb-msvc2015;因此穩妥起見還是編譯的PCL1.8.1版本源碼
-
PCL1.8.1+Visual Studio 2015+CUDA 9.0 :有時候Cmake還出現cuda nppi library的問題,參見https://blog.csdn.net/zhou_x11/article/details/99560680
二、編譯流程
前提:所有軟件和安裝包安裝完畢,
1、使用Cmake生成vs2015工程
參考官方文檔:http://www.pointclouds.org/documentation/tutorials/compiling_pcl_windows.php
其他博客:
https://blog.csdn.net/qq_34675171/article/details/86252617
管理員身份打開Cmake3.10.2
Cmake基本配置:
選擇源碼文件夾、編譯後工程輸出文件夾;勾選複選框;配置生成器爲vs2015 64位
配置第三方庫的路徑:
configure之後會報錯,eigen路徑找不到;根據官方說明:需要最基本的幾個庫需要添加路徑;其餘可選,根據自己的第三方庫(安裝allinone時候制定)路徑,按照官方庫說明添加
EIGEN_INCLUDE_DIR
C:\Program Files\PCL 1.8.1\3rdParty\Eigen\eigen3
配置成功後生成vs2015工程
2、vs2015編譯工程
編譯前確定之後PCL的安裝位置
vs2015打開build文件夾中的PCL工程文件
測試cuda部分能否編譯成功
成功後,同時編譯 debug and release 版本
生成–》批生成—》勾選all build的兩個版本;等待編譯:大概一個多小時
編譯完成後:編譯install工程,會自動找到生成的dll和lib等文件,並複製到cmake時設置的安裝路徑下,這樣pcl就和Allinone install安裝時差不多了