这里假设vs、pcl已经全部安装,并且相关的包含目录和库目录也都配置完成,在测试时可能问题的总结如下:
1. error C4996: ‘pcl::SAC_SAMPLE_SIZE’: This map is deprecated and is kept only to prevent breaking existing user code. Starting from PCL 1.8.0 model sample size is a protected member of the SampleConsensusModel class
或者
error C4996: ‘vtkMapper::ImmediateModeRenderingOff’:
解决方法:
打开项目属性页>C/C++>常规>SDL检查(设置为否)。
2.“pop_t”:找不到标识符”
可能行数有些变化,自己找到就行。
这里另外需要主要的是,可能这个文件受保护,右键->打开文件所在的位置->右键属性->
编辑->选择Users->修改->确定
3._findnext,_finddata_t在64位系统操作失败
4.找不到OpenNI2
可能在刚开始安装的时候,安装位置错了,找到OpenNI2的安装包xxx.msi,然后重新安装(首先删除安装错的位置,一般也在c盘,可以手动搜索一下),位置选择如下,安装成功后如下:
5.error LNK2001: 无法解析的外部符号 H5T_STD_REF_OBJ_g
在C++工程中,添加hdf5时,将include与lib文件分别添加进路径后编译依然报错,错误如标题所示,可以试着在项目属性--C/C++--预处理器--预处理器定义列表中添加“H5_BUILT_AS_DYNAMIC_LIB”,保存,重新编译即可。
6.viewer->addArrow内存泄漏问题
1)在属性的附加依赖项添加 opengl32.lib
2)在cpp头部添加
#include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRenderingOpenGL); VTK_MODULE_INIT(vtkInteractionStyle); VTK_MODULE_INIT(vtkRenderingFreeType);
7.错误 LNK2001 无法解析的外部符号 __imp_glBindTexture watermelon D:\gitAllPro\watermelon\vtkRenderingOpenGL-8.1.lib(vtkOpenGLTexture.obj)
问题的解决方法同6
8.VS2015/2017配置HDF5
HDF5官网:http://portal.hdfgroup.org/display/support/HDF5+1.8.20
不过官网下载比较慢,可以在一下链接进行下载:
https://download.csdn.net/download/qq_37534947/12667808
解压后如下:
msi安装即可,然后进行以下配置:
注意:包含目录和库目录是你自己安装后的相应位置,我这里是D盘,为了方便可以安装到C盘。
9.pcl::KdTreeFLANN…param_k_”错误
C2079 “pcl::KdTreeFLANN…param_k_”使用未定义的 struct“flann::SearchParams”
项目需要用到OpenCV和PCL,在分别单独添加现有属性时并不会报错,两个属性添加到统一项目时出现报上述错误。
查找了各种解决方案:比如:包含目录、库目录,代码包含include"···.hpp"等等解决方案,均没有得到解决。
后来发现属性加载要有顺序:这里使用kdtree时,调用的是PCL的库,把pcl属性(.props文件)移除,再重新添加(默认会添加首位),使其在OpenCV属性文件之前就解决了问题。如果两者直接添加到“附加依赖项”,也应该注意先后顺序。
这里遇到这样的问题,归根结底是PCL库和OpenCV库冲突的问题,两者都包含flann库,至于解决方案,应该有很多博客,以后遇到再搞。
10.4996_‘localtime’
解决方法:在报错的文件中添加
#pragma warning(disable:4996)
11.其他错误
参考:https://blog.csdn.net/qq_39758080/article/details/87454318