在做pcl的高斯滤波/卷积滤波的时候,引用convolution_3d.hpp出现问题,报下面的错误
当前pcl版本号为pcl1.12.1
错误内容
严重性 | 代码 | 说明 | 文件 | 行 |
错误 | C2143 | 语法错误: 缺少“;”(在“<”的前面) | C:\pcl12\PCL 1.12.1\include\pcl-1.12\pcl\filters\convolution_3d.h | 159 |
错误 | C4430 | 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int | C:\pcl12\PCL 1.12.1\include\pcl-1.12\pcl\filters\convolution_3d.h | 159 |
错误 | C2238 | 意外的标记位于“;”之前 | C:\pcl12\PCL 1.12.1\include\pcl-1.12\pcl\filters\convolution_3d.h | 159 |
解决办法
方法一:
打开文件convolution_3d.hpp,增加代码
#include <boost/optional.hpp>
方法二:
将pcl1.12.1的库换成pcl1.13.1,因为pcl1.13.1已经完善了这个bug
详见源码链接:
Point Cloud Library (PCL): pcl/filters/convolution_3d.h Source File
或直接将这个页面里面的代码全部复制粘贴至现在报错文件中。