使用PCL时报错,提示Min()、Max()函数调用不对
报错信息
产生位置
错误原因
函数模板max与Visual C++中的全局的宏max冲突。
解决方案
找到自己代码的头文件,在头文件(与PCL相关)开头添加下面的代码:
#pragma push_macro("min")
#pragma push_macro("max")
#undef min
#undef max
在头文件(与PCL相关)结尾添加下面的代码:
#pragma pop_macro("min")
#pragma pop_macro("max")
例如,头文件如下:
#include "stdafx.h"
#include <iostream>
#include "pcl\point_cloud.h"
#include "pcl\point_types.h"
#include <pcl\visualization\pcl_visualizer.h>
#include <pcl/filters/voxel_grid.h>
#include <pcl/filters/passthrough.h>
#include <pcl/segmentation/sac_segmentation.h>
#include <pcl/features/normal_3d.h>
#include <pcl/filters/extract_indices.h>
#include <pcl\io\pcd_io.h>
修改为:
#include "stdafx.h"
#include <iostream>
#pragma push_macro("min")
#pragma push_macro("max")
#undef min
#undef max
#include "pcl\point_cloud.h"
#include "pcl\point_types.h"
#include <pcl\visualization\pcl_visualizer.h>
#include <pcl/filters/voxel_grid.h>
#include <pcl/filters/passthrough.h>
#include <pcl/segmentation/sac_segmentation.h>
#include <pcl/features/normal_3d.h>
#include <pcl/filters/extract_indices.h>
#include <pcl\io\pcd_io.h>
#pragma pop_macro("min")
#pragma pop_macro("max")