我正在使用 OpenCV 2.4.2 和点云库 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 and flann conflict 但这是一个略有不同的错误......
编辑 2
所以在我以前的 main.cpp 文件中
使用命名空间 pcl;使用命名空间简历;
我将这两个注释掉并更新了程序以使用 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'
I've just tried renaming include\opencv2\flann\ to include\opencv2\flanncv\ and updating the includes in a bunch of opencv headers to this new flanncv directory. I'm still getting the above error...