1. 程式人生 > >VS2013下PCL1.8.1的編譯

VS2013下PCL1.8.1的編譯

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

PCL1.8.1編譯

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

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

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設定。

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版相同。