天天看点

Opencv+PCL=Flann 冲突?

想必很多同时使用opencv和pcl库的朋友都遇到过来这个头痛的问题——Flann冲突。究其根本是因为两个库同时使用了flann,造成歧义。

网贴有些兄弟称注释掉: using namespace cv;

using namespace pcl;

添加 cv::    pcl:: 但是我的case问题任然存在

我的解决方案: 首先,注意添加include路径顺序, 先pcl库后opencv

然后,编译会遇到错误代码:lines that were complaining about 'flann' : ambiguous symbol 

          could be 'flann' 

          or 'cv::flann' 

表明flann有歧义,pcl和opencv都使用,产生了冲突。

最后,在错误处给flann前加::作用域运算符,限制其作用域。估计错误应该就能搞定。

附:混合多个函数库时尽量使用如std::  cv:: pcl:: 等来代替 使用 using namespace std,using namespace pcl,using namespace cv。希望新版的opencv库能updata第三方库的命名,避免此类问题出现。