编译Caffe执行make all时找不到opencv2/core/core.hpp报错如何解决
问题原因排查及解决方案
这个报错是Caffe编译时C编译器找不到OpenCV的核心头文件导致的,你通过Python查询到的OpenCV版本仅能证明Python侧的OpenCV运行库已安装,和C编译所需的头文件、开发库无关,常见原因及修复步骤如下:
- 第一种可能:仅安装了Python版本的OpenCV(如通过pip安装的
opencv-python包),未安装C++开发所需的头文件及链接库。
执行命令排查是否存在对应头文件:
如果无输出结果,就需要先安装OpenCV的C开发套件:可以直接安装系统源的sudo find / -name "core.hpp" 2>/dev/null | grep opencv2/corelibopencv-dev包,或者自行编译对应版本的OpenCV源码,编译时开启C库编译选项。 - 第二种可能:已安装OpenCV C++开发套件,但Caffe配置文件未关联对应路径。
如果上一步能搜到头文件路径,比如路径为/usr/local/include/opencv2/core/core.hpp,就将头文件的上级路径/usr/local/include添加到Caffe根目录下Makefile.config的INCLUDE_DIRS变量中,同时将OpenCV的动态库所在路径(通常为/usr/local/lib)添加到LIBRARY_DIRS变量中。 - 第三种可能:未开启OpenCV 3.x适配开关。
你使用的是OpenCV 3.0.2版本,Caffe默认适配OpenCV 2.x版本,需要在Makefile.config中找到# OPENCV_VERSION := 3这一行,去掉前面的注释符号#,开启3.x版本适配。
所有配置修改完成后,先执行make clean清理之前的编译缓存,再重新执行make all即可。
内容的提问来源于stack exchange,提问作者Arslan Majid
相关产品推荐
相关产品推荐

