【PCL】C4996报错问题解决
问题描述
C4996错误是在配置PCL过程比较常见的错误,通常报错有两类,第一类如下图所示:
报错关键信息:
std::fpos<_Mbstatet>::seekpos':warning STL4019
第二类如图所示:
报错关键信息是:
PCL::SAC_SAMPLE_SIZE:This map is deprecated and is kept only to prevent breaking existing user code.
解决办法
为了解决这个问题,我们需要在属性管理器中修改属性页配置:
步骤:打开当前使用的属性页(注意配置和平台是否和当前使用一致)-->C/C++-->预处理器-->预处理定义
具体页面如下图所示:
打开预处理定义后,输入以下内容:
_CRT_SECURE_NO_WARNINGS
_SCL_SECURE_NO_WARNINGS
_SILENCE_FPOS_SEEKPOS_DEPRECATION_WARNING
不论Debug还是Release都要按上面这样配置预处理器定义,上述配置方式可以解决第一类报错
如果要解决第二类报错:
步骤:打开当前使用的属性页-->C/C++-->常规-->SDL检查
将SDL检查的值从“是”改成“否”
具体位置如下图所示:
注意:这里有一个坑,如果你的属性页是外部导入的,那么你还需要修改一个属性页的SDL检查值
打五角星的位置右键-->属性,在同样的位置修改SDL检查,Debug同理
按上面的方式操作以后,就可以解决这个问题。