【发布时间】:2012-09-10 23:09:29
【问题描述】:
我正在使用 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'
我刚刚尝试将 include\opencv2\flann\ 重命名为 include\opencv2\flanncv\ 并将一堆 opencv 标头中的包含更新到这个新的 flanncv 目录。我仍然收到上述错误...
【问题讨论】:
-
啊。这是一个令人讨厌的错误。你是如何安装 pcl 和 opencv 的?也许你可以从源代码编译并让它们指向同一个 flann 安装?
-
我使用了他们都提供的 Windows 安装程序。我想我可以尝试编译它们以使用相同的 flann 文件,但我不确定如何。
-
有一个自述文件,每个文件显示如何编译
标签: c++ visual-studio-2010 opencv point-cloud-library