问题
在工程中需要同时用到opencv和pcl,在原有的pcl程序中加入opencv配置后编译失败,提示flann等错误。原因是opencv和pcl都有flann第三方库,在程序中无法区分调用的是哪一个库的flann而冲突。
解决
通过修改opencv的flann文件夹的名称来区分两个库,解决问题。opencv450contirb&pcl1.10。具体步骤如下:
- 在原pcl工程中加入opencv450contrib属性表;
- 加入opencv头文件#include <opencv2/opencv.hpp>(此时编译报错);
- 在opencv安装文件夹下搜素flann;
- 一个是在\opencv450\opencv\newbuild\install\include\opencv2中,将flann文件夹重命名为flann2;
4.另一个在\opencv450\opencv\newbuild\modules中,同样将flann文件夹重命名为flann2; - 完成重命名后重新编译工程,根据错误提示分别修改下面三个头文件中的四句#include "opencv2/flann为#include "opencv2/flann2;
- features2d.hpp中;
- miniflann.hpp中;
- flann.hpp中;
- 修改完成后重新编译,生成成功。