一、意外的标记位于“;”之前
1.代码语法问题,检查各符号是否正确
2.头文件包含问题,检查是否添加所需的头文件、头文件添加是否重复、头文件相互包含
二、error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead.
直接屏蔽安全报错,在项目属性中的C/C++——预处理器中添加命令_CRT_SECURE_NO_WARNINGS
三、LNK1107 文件无效或损坏: 无法在 0x57CF 处读取
移除导入VS中的文件
四、0xC0000005: 读取位置 0x00000000 时发生访问冲突
一般都空指针问题,即指针里没有赋值
五、Microsoft C++ 异常: 内存位置处的 std::bad_alloc问题解决办法
在批量读取处理数据时产生,内存不足,改为X64模式运行,需要在属性页重新输入命令行参数
六、PCH警告:头停止点不在文件范围内。未生成intelliSense PCH文件
声明函数时后面未加分号
七、严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C2039 “ImmediateModeRenderingOff”: 不是“vtkMapper”的成员 Project1 c:\installed\pcl 1.8.1\include\pcl-1.8\pcl\visualization\impl\pcl_visualizer.hpp 1543
因为vtk8.10之后的版本中将vtkMapper的ImmediateModeRenderingOff()方法移除了,所以为了让pcl1.9.1代码编译通过,只需要将错误提示中对应的那一行代码注释掉即可,或者更换为更低版本的vtk也行。可以注释掉上述出错的两行代码,因为ImmediateModeRenderingOff()方法不是必须的操作。
八、C++无法重载仅按返回值类型区分的函数
去除声明的模板template <typename T>
九、Warning: Link to vtkInteractionStyle for default style selection
为VTK初始化模块的问题,主要报错在vtkRenderWindow类的显示窗口。需要添加相应的宏,对VTK模块初始化。(只需要添加VTK属性表,不需要添加PCL的)
#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL2) ;
VTK_MODULE_INIT(vtkInteractionStyle) ;
VTK_MODULE_INIT(vtkRenderingFreeType);
十、Matrix的transpose(矩阵转置)计算之后不能赋值给自身
重新定义一个矩阵,将转置之后的赋值给新矩阵,如下所示:
Eigen::MatrixXd A;
Eigen::MatrixXd Acopy= B * C;
A = Acopy.transpose();
十一、读取vtkOBJReader报错
输入的obj文件格式不正确,比如法线都为0,或者路径不正确,绝对路径应用\\相隔而不是\
十二、fatal error C1083: 无法打开包括文件:“boost/shared_ptr.hpp”: No such file or directory
没有添加PCL项目属性表
十三、成功解决引发了未经处理的异常:读取访问权限冲突。 p 是 0xFFFFFFFFFFFFFFF7
在循环中数组越界
十四、VTK版本函数问题
参考[学习笔记]PCL使用心得 - RichardYao1995 - 博客园
C2039 “ImmediateModeRenderingOff”: 不是“vtkMapper”的成员
vtk8.10之后的版本中将vtkMapper的ImmediateModeRenderingOff()方法移除了,所以为了让pcl1.9.1代码编译通过,只需要将错误提示中对应的那一行代码注释掉即可,或者更换为更低版本的vtk也行。
十五、无法打开xx.hpp
工程 -> 属性 -> 配置属性 -> C/C++ -> 常规 -> 附加包含目录 -> 添加“$(ProjectDir)”或者添加诸如“...\xx\include”之类的,即硬盘上的include目录路径
十六、error C4996: 'pcl::SAC_SAMPLE_SIZE':
打开头文件”model_types.h”,注释以下代码
十七、找不到导入的项目,请确认import声明
分析报错内容,如果出现问题文件为vcxproj文件,则找到该文件用记事本打开,删除改行,保存重新打开项目
十八、VS2017无法找到 v142 的生成工具(平台工具集 =“v142”
原因是VS版本的不同
右键项目 -> 属性 -> 常规 -> 工具集 -> 选择vs2017 -> 确定
再次右键项目 -> 重定向
重定向成功后,即可正常编译、运行。