VS2013下PCL1.8.1的編譯

/******************************************

PCL1.8.1編譯

*****************************************/

1.本次編譯是在vs2013下32位的編譯,其所依賴的庫爲:

VTK與QT:https://blog.csdn.net/jaggerjack330/article/details/82595523

Boost:https://blog.csdn.net/jaggerjack330/article/details/82591188

Qhull:https://blog.csdn.net/jaggerjack330/article/details/82627713

FLANN:https://blog.csdn.net/jaggerjack330/article/details/82628815

OpenNI可以直接安裝:https://pan.baidu.com/s/1q1EWJZwQ_1qKmVTpigv3XQ 密碼:iljv

 

2.下載PCL1.8.1的源碼:https://github.com/PointCloudLibrary/pcl/tree/pcl-1.8.1,解壓,我的解壓目錄爲D:\PCL,新建Build文件夾作爲編譯時的目錄,pcl-res作爲臨時安裝目錄,pcl-debug爲debug版本,pcl-release爲release版本。

 

2.打開CMake(請自行下載),將pcl-pcl-1.8.1文件夾中的CMakeLists.txt拖入CMake中,在Where is the source code中保持默認D:/PCL/pcl-pcl-1.8.1,Where to build the binaries中修改爲D:/PCL/Build。可以勾選Grouped和Advanced的選項。

 

3.另外爲了可以讓CMake找到更多SDK的路徑,我們爲其添加一個CMAKE_PREFIX_PATH。

點擊Add Entry,設置Name爲CMAKE_PREFIX_PATH,Type爲STRING,Value爲之前編譯安裝的依賴庫的路徑。我的值爲:

D:\VTK\VTK-debug;D:\Boost;D:\Qhull\Qhull-debug;D:\Flann\flann-debug;D:\Eigen\Eigen;D:\Qt\Qt5.4.2\5.4\msvc2013_opengl;

Description可以爲空。

注意:CMAKE_PREFIX_PATH的值根據實際情況設置,在點擊Configure按鈕前添加。建議使用這種方式引導CMake的搜索過程,並且把環境變量中的SDK去掉,這樣CMake會搜索你指定的目錄,以便得到正確版本的SDK路徑和正確的CMake設置。

(參考自https://wenku.baidu.com/view/7b433a800b1c59eef9c7b457

 

4.點擊Configure,選擇Visual Studio 12 2013,會出現一些錯誤,下圖是一些警告錯誤,由於沒有安裝這些依賴庫,不過不影響編譯。

但是可能也會出現一些庫文件路徑找不到的錯誤,需要我們手動進行修改,比如下圖的找不到boost

 

5.我把需要注意修改的地方進行簡單的介紹,首先確保Ungrouped Entries中的EIGEN_INCLUDE_DIR的路徑是否正確,然後是QT的相關路徑是否正確,然後是VTK_DIR的相關路徑。

然後是boost的相關路徑,由於我報了這個錯誤,我需要手動進行添加,找到對應的庫文件即可,這裏的MPI庫需要先安裝MPI,不過不是必須要用到的,可以不進行設置。

有可能在編譯boost的時候由於某些原因部分庫文件沒有編譯成功,那麼在確保vs2013爲update5的情況下定位至boost原始文件夾,在控制檯輸入

bjam.exe toolset=msvc-12.0 --build-type=complete address-model=32 --with-serialization --with-system --with-date_time --with-regex --with-filesystem --with-timer  --with-chrono  --with-program_options --prefix="X:\X\Boost" stage runtime-link=shared runtime-link=static threading=multi debug release

其中的--with-後面爲缺失的庫名稱,--stagedir爲編譯後存放的目錄位置,後面分別編譯動態可靜態庫文件包括debug和release版本。

然後是PLC的安裝目錄,我安裝與此,在CMAKE的CMAKE_INSTALL_PREFIX處進行修改

Flann的目錄設置

Qhull的目錄設置

然後可以點擊Configure,可以勾選BUILD_surface_on_nurbs,Configure後不勾選USE_UMFPACK

注意Eigen的版本不能高於3.2.8,WITH儘量直選需要的,不然編譯很容易出錯。

 

6.接着Configure,如果沒有錯誤和紅色,可以Generate生成。此時會在D:\PCL\Build中生成工程文件。

 

7.我們以管理員身份啓動vs2013,打開Build目錄下的PCL.sln文件,首先生成Debug版本的ALL_BUILD,完成之後右鍵INSTALL-僅用於項目-僅生成INSTALL。完成之後將pcl-res中的文件剪切至pcl-debug。

 

8.然後進行release版本的生成和安裝。過程同debug版相同。

 

9.進行環境變量的設置,新增PCL_ROOT

加入Path

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章