我正在使用PCL 1.6,OpenCV 2.4.2用于我的程序(在Qt中)并且存在我无法解决的这种flann(1.7.1)冲突。
我已经在互联网上阅读了很多关于它的内容,并尝试了大多数解决方案(不使用using namespace cv
,更新最新版本的OpenCV并在OpenCV包括之前放入PCL包含等),但仍然每当我一起使用PCL和OpenCV,flann-lib(PCL使用)会引起问题并说出例如对于这行代码typedef flann::Index<Dist> FLANNIndex;
/usr/include/pcl-1.6/pcl/kdtree/kdtree_flann.h:74:错误:'flann'没有命名类型
还有其他解决方法吗?
答案 0 :(得分:3)
遇到了同样的问题。
在opencv中有一个flann实现,在pcl中有另一个(可能是相同的)。
最初,他们住在不同的NAMESPACES,但如果你喜欢
using namespace cv;
using namespace pcl;
你在那里得到了冲突。
所以,跳过using namespace cv;
行,而不是在代码中使用cv :: anything解决了它。
答案 1 :(得分:2)
我似乎找到了解决方案,但我不确定它是最好的解决方案。
我将#include <flann/flann.h>
添加到 ../include / pcl-1.6 / pcl / kdtree / kdtree_flann.h ,之后上述错误消失了。
但是OpenCV很难找到它的“flann / flann.h”,所以我改变了 ../include/opencv2/flann 到 flanncv 当然我也要为每个包含此目录的.h文件执行此操作。
这不是一个非常简洁的解决方案,但它现在正在运作。