解决PCL+OpenCV出现flann_algoritm_t报错的最简单方法

建议在调整include顺序、修改pcl和opencv代码之前先尝试本方法

报错现象

如https://blog.csdn.net/qq_60609496/article/details/123557556所示

未定义标识符 "flann_algorithm_t"

解决方法:检查include目录设置里是否有类似"include/opecv2"的写法

假设在windows上(通过cmake编译和安装),一个正常的opencv结构为:

/path/opencv/
│
├─── include/
│    ├── opencv2/
│    │    ├── core/
│    │    │    ├── core.hpp
│    │    │    └── ...
│    │    ├── imgproc/
│    │    │    ├── imgproc.hpp
│    │    │    └── ...
│    │    ├── highgui/
│    │    │    ├── highgui.hpp
│    │    │    └── ...
│    │    └── ...
│    └── opencv.hpp
│
├─── x64/
│    └── vc17/
│         ├── lib/
│         │    ├── opencv_world470.lib
│         │    └── ...
│         └── bin/
│              ├── opencv_world470.dll
│              └── ...
└─── ...

其他方式获得的opencv目录结构应该大同小异。我们只关注include

在自己的工程中,检查opencv的include目录设置,应指定为/path/opencv/include,这是标准写法。而出错的写法可能是/path/opencv/include/opencv2,这是不规范写法,会导致预处理器找到include/opencv2/flann里的头文件。

在修正后能直接解决该问题。

补充

如果是cmake工程,应直接通过find_package找到opencv和pcl,然后通过target_link_libraries直接链接即可,不需要手动指定include目录

可以看看vcpkg的usage,简单直接:

    find_package(PCL CONFIG REQUIRED)
    target_link_libraries(main PRIVATE ${PCL_LIBRARIES})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值