之前在Ubuntu系統下成功搭建了PCL1.11.1+VTK8.2+QT5.12.0的開發環境,並且成功做出了一點小東西,這次挑戰下在Windows系統下搭建同樣的開發環境。總體上來說,在Windows下搭建環境難度確實非常大...從開始搭建到成功運行demo花了整整三天的時間...搭完之後感覺自己又蒼老了十歲...(無奈)
成功運行Win10下第一個demo
Ubuntu系統下的開發環境(基於QtCreator&CMake)
Win10下的開發環境(基於Visual Stdio 2017)
先簡單地介紹一下搭建環境所用到的主要的工具。
PCL(Point Cloud Library)
是在吸收了前人點雲相關研究基礎上建立起來的大型跨平臺開源C++編程庫,它實現了大量點雲相關的通用算法和高效數據結構,涉及到點雲獲取、濾波、分割、配準、檢索、特徵提取、識別、追蹤、曲面重建、可視化等。支持多種作業系統平臺,可在Windows、Linux、Android、Mac OS X、部分嵌入式實時系統上運行。如果說OpenCV是2D信息獲取與處理的結晶,那麼PCL就在3D信息獲取與處理上具有同等地位,PCL是BSD授權方式,可以免費進行商業和學術應用。
Vtk(visualization toolkit)
是一個開源的免費軟體系統,主要用於三維計算機圖形學、圖像處理和可視化。
Qt
是一個1991年由Qt Company開發的跨平臺C++圖形用戶界面應用程式開發框架。
那麼如何搭建這個開發環境呢?以下進入正文。
安裝順序:
(1)Visual Stdio2019/2017均可
(2)安裝CMake
(3)Qt5.12.0
(4)VTK8.2
(5)安裝QVTKWidget插件
(6)安裝Visual Stdio for Qt插件
(7)PCL1.11.1
為了避免莫名其妙的問題出現,請按照此順序進行搭建,尤其是PCL和VTK的安裝順序不能反。
一、Visual Stdio2019/2017
下載地址:https://visualstudio.microsoft.com/zh-hans/
下載community版即可,推薦下載2019版本,因為2019的平臺工具集是v142,與Boost庫的版本匹配,而2017的平臺工具集為v141,會造成與Boost庫不匹配的的問題。當然此問題也完全可以手動解決,因此用2017也行,只是略麻煩,之後會講。
二、CMake
下載地址:https://cmake.org/download/
點擊cmake-3.19.3-win64-x64.msi點擊下載
CMake用來對VTK、PCL的源碼進行編譯
三、Qt5.12.0
Qt的版本理論上來說只要是5.X均可,保險起見,我選擇了QT5.12.0
下載地址:https://download.qt.io/archive/qt/5.12/5.12.0/
點擊qt-opensource-windows-x86-5.12.0.exe進行下載,安裝過程中會需要註冊,隨便註冊一下然後無腦next即可安裝完成。
四、VTK8.2
VTK的安裝較為複雜,且坑很多。
下載地址:https://vtk.org/download/
找到VTK-8.2.0.zip和VTKData-8.2.0.zip,點擊下載。
下載完成後,將VTK-8.2.0.zip解壓縮,可得到一大堆文件。
此時在VTK-8.2.0文件夾內創建兩個新文件夾,分別命名為src和build,將解壓所得到的所有文件放入src文件內,build文件夾空置,文件結構如圖所示。
打開CMake,此時開始編譯VTK。
分別將src和build文件夾的路徑導入,並勾選Grouped和Advanced兩個複選框。
點擊Configure進行配置,會彈出
根據自己Visual Stdio的實際版本進行選擇,這裡我選擇了Visual Studio 17 2017 Win64(64位版本的VS 2017)編譯,選擇後點擊右下角Finish,等待Configure。
第一次Configure完成之後,此時界面會變成紅色,接下裡是重點,一定要確保每一步都正確操作。
1.在右側搜索欄中搜索Qt,將除了vtkGUISupportQtWebKit之外的所有包含Qt的複選框全都勾選。
2.BUILD_SHARED_LIBS一定確保勾選。
3.CMAKE_INSTALL_PREFIX這裡需要選擇之後存放最終結果的路徑,在這裡我選擇了E:\Applications\VTK-8.2.0\VTKRelease,文件夾需要自己新建一個,用來放Release數據。
4.選擇Qt5的位置,根據自己安裝Qt的實際位置進行選擇,以下我的配置作為參考。
5.確認確定VTK_QT_VERSION是5.
操作完畢後,可以開始第二次Configure,Configure完畢可以看到紅色已經沒了。點擊Generate,等待Generate done。至此CMake編譯VTK源碼完畢。
接下來就進行生成。
把VTK-Data.zip解壓縮至build文件中,將解壓所得的.ExternalData改名為ExternalData,ExternalData文件是待會兒VTK生成時需要用到的。
打開Visual Stdio,打開新項目,選擇VTK.sln。
等待解決方案加載完畢之後,點擊生成——批生成
勾選All_BUILD Release(其他項保持不勾選狀態),點擊生成,漫長的等待。這一步會生成一些VTK的最終文件,期間會自動下載一些文件,根據個人網速情況有所不同,如果生成報錯,不必擔心,重複先前操作再次生成即可。(我在這裡卡了十幾次)
等待所有項目生成完畢,不再報錯的時候,取消勾選All_BUILD Release,然後勾選INSTALL Release,點擊生成。
經過上述工作,成功生成了VTK,注意上述操作只生成Release X64版本,如果想生成Debug版本,請自行查閱資料,個人覺得不是十分必要,因為我發現之後PCL的一些第三方庫沒有匹配Debug X64的lib文件?
未完待續