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);




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