You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu下安装ORB-SLAM2时DBoW2编译报错:找不到opencv2/core.hpp

解决DBoW2编译时找不到opencv2/core.hpp的问题

嘿,我看你在搭建ORB-SLAM2环境编译DBoW2的时候,碰到了依赖的DLib找不到OpenCV核心头文件的错误。这个问题很常见,大概率是OpenCV的路径没被CMake正确检测到,或者系统里的OpenCV配置有小问题,给你几个靠谱的解决办法:

方法1:手动给DBoW2指定OpenCV路径

  1. 打开DBoW2根目录下的CMakeLists.txt文件
  2. 在文件开头的位置,添加你的OpenCV实际安装路径(比如我自己装的OpenCV4在/usr/local/opencv4,你要换成自己的路径):
    set(OpenCV_DIR /usr/local/opencv4/share/OpenCV)
    find_package(OpenCV REQUIRED)
    
    如果是系统默认安装的OpenCV,路径可能是/usr/local/share/OpenCV,你可以先去找找看这个目录存不存在。

方法2:检查并配置OpenCV环境变量

  1. 先确认你的OpenCV确实装好了,在终端跑这个命令:
    pkg-config --modversion opencv4  # 如果你装的是opencv3就改成opencv3,opencv2的话是opencv
    
    能输出版本号就说明安装没问题,只是CMake没读到环境变量。
  2. 把OpenCV的路径添加到bash环境变量里:
    echo 'export OpenCV_DIR=/usr/local/opencv4/share/OpenCV' >> ~/.bashrc
    source ~/.bashrc
    
    之后进到DBoW2的build目录,清空之前的编译残留,重新编译:
    cd /src/orbslam2/DBoW2/build
    rm -rf *
    cmake ..
    make -j4
    

方法3:确认OpenCV版本是否兼容

ORB-SLAM2一般要求用OpenCV3.x或者4.x版本。如果你的OpenCV是2.x的话,头文件结构不一样——OpenCV2里核心头文件是opencv2/core/core.hpp,而不是opencv2/core.hpp,这种情况就会报找不到的错。如果是这个原因,你得重新安装符合要求的OpenCV版本。

额外小提示

如果你是源码编译的OpenCV,一定要记得执行make install,不然头文件和库文件不会被放到系统默认的搜索路径里,CMake自然找不到。


内容的提问来源于stack exchange,提问作者Ashif Shereef

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:08:29