在cmake编译的时候大概率会报错
提示opencv2/dnn/dnn.hpp找不到这个文件,因为很多人下载opencv的时候通过命令行而不是源码编译,强烈推荐源码编译下载,猜测是命令行下载可能会丢一些东西?或者不完整。网上其他说法比较笼统吧,基本没法解决我的问题,要么是只说了要按照官方教程源码重编译opencv,要么就是sudo apt install libopencv-dev,对于大部分同学可能有效,这里也记录一下我的解决方法。
tips:不需要卸载旧的opencv,如果直接命令行卸载的话很容易把其他依赖也搞错了,特别是用ros的。
1.opencv
贴上官方教程
How to Install OpenCV on Ubuntu 18.04 | Linuxize
这里可以完全参考里面的内容,默认在~下面创建就行了,方便后面自己找到
2.cmake编译
找到find_package(OpenCV REQUIRED)这一句
修改成:find_package(OpenCV 4.9 REQUIRED),这里的版本做一下限定,对应刚刚通过官方教程下载的版本。
set(OpenCV_DIR " ")这里直接粗暴指定opencv编译的cmake文件路径。因为很多软件依赖自带opencv的,所以很可能你电脑上旧的版本的opencv cmake文件已经在bashrc里面了,最好还是不要改bashrc吧,如果想一劳永逸也可以改bashrc,最后一行添加一句:
export OpenCV_DIR=“刚刚说的opencv编译的cmake文件路径”
完美解决,能不动其他依赖尽量还是不要动。