2012-08-11 224 views
1

我使用PCL 1.6,OpenCV 2.4.2为我的程序(在Qt中),并且存在这个我无法解决的flann(1.7.1)冲突。PCL,OpenCV和flann冲突

我已经在网上阅读了很多,并尝试了大多数解决方案(不使用using namespace cv,更新OpenCV的最新版本,并将PCL包含在OpenCV之前等),但仍然每当我使用PCL和OpenCV一起,flann-lib(PCL使用的)会导致问题并说例如对于此行代码typedef flann::Index<Dist> FLANNIndex;

/usr/include/pcl-1.6/pcl/kdtree/kdtree_flann.h:74: error: 'flann' does not name a type

是否有任何其他解决方法?

回答

2

我似乎找到了解决方案,但我不确定它是否是最好的解决方案。

  1. 我加#include <flann/flann.h> ../include/pcl-1.6/pcl/kdtree/kdtree_flann.h,后来上面提到的错误就走开了。

  2. 但随后的OpenCV遇到了麻烦,找到它的“FLANN/flann.h”,所以我改变了目录,在 ../include/opencv2/flann flanncv,当然我也有为每个包含该目录的.h文件执行此操作。

这不是一个非常整洁的解决方案,但它现在工作。

+0

此解决方案似乎不适用于所有人。也许一些[这些](http://stackoverflow.com/questions/12481208/opencv-and-pcl-conflict?lq=1)建议。 – zhurora 2013-04-18 09:58:47

2

遇到同样的问题。

在opencv中有一个flann的实现,在pcl中有另一个(可能是相同的)。

原来,他们生活在不同的命名空间,但如果你不喜欢

using namespace cv; 
using namespace pcl; 

你那里的冲突。

所以,跳过using namespace cv;行,而是使用cv ::代码中的任何东西解决它。

+0

你救了我的一天!谢谢! :) – Kozuch 2017-08-09 16:09:27