几经波折终于配置成功,现在总结下网络上的较简洁的方法分享给大家(第一次写博,谢大家支持)
主要参考博客:
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,下图在环境变量中自动生成
;%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
右键每个以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);