pcl1.8.0+QT5.7.0+vs2013 win7 x64環境配置以及第一個小程式實現
幾經波折終於配置成功,現在總結下網路上的較簡潔的方法分享給大家(第一次寫博,謝大家支援)
主要參考部落格:
http://blog.csdn.net/u012750702/article/details/53046210
http://blog.csdn.net/wokaowokaowokao12345/article/details/51314439
感謝作者~
前言
如果你也選擇和我一樣版本的pcl以及vs,則無需用到cmake(文中會提供下載連結)
同時建議你也和我一樣的安裝路徑,方便很多~
step1 下載檔案
1.pcl1.8.0 其中exe和pdb以及屬性表都需下載 點選開啟連結
2.QT5.7.0 官網下載即可
3.QVTKWidgetPlugin點選開啟連結
4.qt-vs-addin-1.2.5
step2 安裝QT
QT:D:\Qt\
Qt5VSAddin:D:\Qt5VSAddin\
開啟vs會發現工具欄多了QT5,選擇QT5->qt options->add,path選擇安裝路徑D:\Qt\Qt5.7.0\5.7\msvc2013_64
將下載好的QVTKWidgetPlugin和QVTKWidgetPlugin.dll拷貝在D:\Qt\Qt5.7.0\5.7\msvc2013_64\plugins\designer下
ps:十分有必要提到的一點是,這是在很久前我就用cmake生成的,vtk7.0版本,拷貝過來是可以用的
step3 vs新建工程
雙擊pclvisualizer.ui檔案,左側多出QVTKWidget,簡直amazing。就可以拖進來用啦
step4 pcl安裝及配置
PCL:安裝的時候注意選上“Add PCL to the system PATH for all users”,這樣安裝程式會自動在系統環境變數中新增"PCL_ROOT"項,如圖
我的安裝路徑是D:\PCL 1.8.0\
在安裝過程中會彈出openni2的安裝路徑,可以隨意選取,但建議安裝在D:\PCL 1.8.0\3rdParty\OpenNI2,下圖在環境變數中自動生成
path中新增
;%PCL_ROOT%\bin
;%PCL_ROOT%\3rdParty\Qhull\bin
;%PCL_ROOT%\3rdParty\FLANN\bin
;%PCL_ROOT%\3rdParty\VTK\bin
;%PCL_ROOT%\3rdParty\OpenNI2\Tools
下載好的PCL-1.8.0-AllInOne-msvc2013-win64-pdb,pdb檔案拷貝到PCL ROOT下的bin資料夾中,下圖是拷貝後的樣子
下載好的屬性表我為了方便放在D:\PCL 1.8.0\中
依然是剛才的新建的專案
注意vs2013中Configuration Manager(配置管理器)預設Active solution plantform(活動平臺)是Win32,如果安裝的是x64的PCL需要將其改成x64,否則編譯的時候會出現奇怪的問題。
Solution Explorer(解決方案管理器)中右鍵專案->Properties(屬性)-> Configuration Properties(配置管理器)->C/C++->Preprocessor(前處理器)->Preprocessor Definitions(預處理定義) 中新增如下兩項:_SCL_SECURE_NO_WARNINGS
_CRT_SECURE_NO_WARNINGS
Property Manager(屬性管理器)中
右鍵每個以Debug或Release開頭的資料夾,Add Existing Property Sheet,選擇下載下來的屬性表文件(PCLDebug.props或PCLRelease.props),debug就選debug,release就選release
就這樣啦
示例小程式(其實是GitHub的啦)
當然你可以選擇cmake編譯,但我的方法是建立一個Qt工程,將下面幾個檔案替換。注意檢查一下cpp和h中標頭檔案的引用
注意是release版
跑出來的結果
問題
1.雖然不影響結果,但提示很多錯。我目前還不清楚原因,難道和cmake編譯有關?
2.no override found for ‘vtkRenderWindow’錯誤解決方法
解決方法:在第一次使用vtk的標頭檔案最前新增下面程式碼。
#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);