#《PCL点云库学习&VS2010(X64)》Part 49 OpenCV与FLANN混合使用时uchar相互冲突的解决方法

《PCL点云库学习&VS2010(X64)》Part 49 OpenCV与FLANN混合使用时uchar相互冲突的解决方法

同时使用opencv和pcl库的朋友都遇到过来这个头痛的问题——Flann冲突。究其根本是因为两个库同时使用了flann,造成歧义,同时FLANN中的matrix.h文件和OpenCV的types_c.h文件中都定义了uchar,编译时就会造成未定义标识符等编译错误。

解决方法:
第一步:首先,注意添加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。

///////////////////////////////////////////////////////////
附:FLANN中的hdf5.h及其lib与HDF5的头文件库同时使用时,会提示hdf5.lib无法链接成功的错误(error2001和error2009),此时,只需不包含hdf5.lib,但是要加上其他的头文件和lib,方能编译通过。

猜你喜欢

转载自blog.csdn.net/sinat_24206709/article/details/79697277
49
今日推荐