我正在使用OpenCV 2.4.2和Point Cloud Library 1.6.0。
我的程序运行良好,直到我添加了以下代码行...
#include <pcl/segmentation/segment_differences.h>
这会在编译时导致错误。我遇到了...
Error 93 error C2872: 'flann' : ambiguous symbol C:\Program Files (x86)\PCL 1.6.0\include\pcl-1.6\pcl\kdtree\kdtree_flann.h 424
Error 94 error C2872: 'flann' : ambiguous symbol C:\Program Files (x86)\PCL 1.6.0\include\pcl-1.6\pcl\kdtree\kdtree_flann.h 425
Error 95 error C2872: 'flann' : ambiguous symbol C:\Program Files (x86)\PCL 1.6.0\include\pcl-1.6\pcl\kdtree\kdtree_flann.h 427
Error 96 error C2872: 'flann' : ambiguous symbol C:\Program Files (x86)\PCL 1.6.0\include\pcl-1.6\pcl\kdtree\kdtree_flann.h 514
Error 97 error C2872: 'flann' : ambiguous symbol C:\Program Files (x86)\PCL 1.6.0\include\pcl-1.6\pcl\kdtree\kdtree_flann.h 520
C:\Program Files (x86)\PCL 1.6.0\include\pcl-1.6\pcl/kdtree/kdtree_flann.h(520): error C2872: 'flann' : ambiguous symbol
could be 'flann'
or 'cv::flann'
看起来OpenCV自带的Flann文件与PCL中的Flann文件发生了冲突。
有什么建议吗?
编辑
这里有一个类似的问题PCL、OpenCV和Flann冲突,但是错误略有不同...
编辑2
所以在我的main.cpp文件中,我之前有以下代码:
using namespace pcl; using namespace cv;
我将它们注释掉并更新了程序使用cv::Mat等。
但是当我添加...时仍然在编译过程中出现错误。
#include <pcl/segmentation/segment_differences.h>
C:\Program Files (x86)\PCL 1.6.0\include\pcl-1.6\pcl/kdtree/kdtree_flann.h(520): error C2872: 'flann' : ambiguous symbol
could be 'flann'
or 'cv::flann'
我刚试过将include\opencv2\flann\重命名为include\opencv2\flanncv\并更新大量opencv头文件中的包含内容到这个新的flanncv目录。但是我仍然得到上述错误...