PCL1.7.2 in QT5.4.1 --- error: C2589, C2059, C2181 in PCL header file
PCL1.7.2 in QT5.4.1 --- error: C2589, C2059, C2181 in PCL header file
我试图将我朋友的代码包含到我的项目中。
原始代码高度使用 PCL 1.7.2 所以我,
1.Installed PCL 1.7.2 包(未使用源代码构建)
2.Edit INCLUDEPATH and LIBS in myproject.pro file, 根据我朋友在Visual Studio 2013的设置(是的,他在VS2013下写的代码)。例如
和上面一样的更多路径。
3.Include header 文件在 mainwindow.h
#include <opencv2/opencv.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv/cv.h>
#include <opencv/highgui.h>
#include <boost/shared_ptr.hpp>
#include <pcl/point_types.h>
#include <pcl/point_cloud.h>
#include <pcl/io/ply_io.h>
#include <pcl/io/pcd_io.h>
#include <pcl/kdtree/kdtree_flann.h>
#include <pcl/surface/mls.h>
#include <pcl/filters/statistical_outlier_removal.h>
#include <pcl/filters/voxel_grid.h>
#include <pcl/registration/icp.h>
#include <pcl/filters/radius_outlier_removal.h>
#include <pcl/features/normal_3d.h>
#include <pcl/surface/gp3.h>
#include <cv.h>
#include <cxcore.h>
using namespace cv;
using namespace std;
using namespace pcl;
4.Build(编译)项目,出现一堆错误
错误是C2589、C2059和C2181,主要在PCLheader如io_operators.h、pcl_io.h、correspondence.h、[=37] =].我完全不知道这些,这是否意味着我必须编辑 PCL 的 header 文件?
这些错误代码通常与 Windows 问题有关 warning C4003 and errors C2589 and C2059 on: x = std::numeric_limits<int>::max();
io_operators.h:66
和pcl_io.h:281
中确实有std::numeric_limits<>::max()
。
因此,如果这是唯一的问题,可以通过将 pcl
header 移到顶部来更改 header 的顺序来解决,以避免包含 windows.h
(可能包含在其他 header 中)之前或通过在所有包含之前定义 NOMINMAX
。
我试图将我朋友的代码包含到我的项目中。
原始代码高度使用 PCL 1.7.2 所以我,
1.Installed PCL 1.7.2 包(未使用源代码构建)
2.Edit INCLUDEPATH and LIBS in myproject.pro file, 根据我朋友在Visual Studio 2013的设置(是的,他在VS2013下写的代码)。例如
3.Include header 文件在 mainwindow.h
#include <opencv2/opencv.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv/cv.h>
#include <opencv/highgui.h>
#include <boost/shared_ptr.hpp>
#include <pcl/point_types.h>
#include <pcl/point_cloud.h>
#include <pcl/io/ply_io.h>
#include <pcl/io/pcd_io.h>
#include <pcl/kdtree/kdtree_flann.h>
#include <pcl/surface/mls.h>
#include <pcl/filters/statistical_outlier_removal.h>
#include <pcl/filters/voxel_grid.h>
#include <pcl/registration/icp.h>
#include <pcl/filters/radius_outlier_removal.h>
#include <pcl/features/normal_3d.h>
#include <pcl/surface/gp3.h>
#include <cv.h>
#include <cxcore.h>
using namespace cv;
using namespace std;
using namespace pcl;
4.Build(编译)项目,出现一堆错误
错误是C2589、C2059和C2181,主要在PCLheader如io_operators.h、pcl_io.h、correspondence.h、[=37] =].我完全不知道这些,这是否意味着我必须编辑 PCL 的 header 文件?
这些错误代码通常与 Windows 问题有关 warning C4003 and errors C2589 and C2059 on: x = std::numeric_limits<int>::max();
io_operators.h:66
和pcl_io.h:281
中确实有std::numeric_limits<>::max()
。
因此,如果这是唯一的问题,可以通过将 pcl
header 移到顶部来更改 header 的顺序来解决,以避免包含 windows.h
(可能包含在其他 header 中)之前或通过在所有包含之前定义 NOMINMAX
。