本文是我在ubuntu22.10安装opencv3.4.10时所遇到的问题,记录一下
1. 无法定位软件包libjasper-dev
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
该命令可以将新的软件包追加到/etc/apt/sources.list文件末尾,但是也有可能出现下面的问题
这种情况下,可以通过下面解决:
sudo apt-key adv --keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
sudo apt-key adv --keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
2. libavresample 不能找到
sudo aptitude install libavresample-dev
并选择n
第二种方案
3. linux/videodev.h not found
sudo apt-get install libv4l-dev
sudo ln -s /usr/include/libv4l1-videodev.h /usr/include/linux/videodev.h
在这个错误下面也许还有 sys/videoio.h not found,但是在我百度过后大多数解决办法都不能用,而且这个错误没有影响到后面的编译,可以忽略。
4. No package 'gtk+-3.0' found
解决办法:
sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt install libgtk-3-dev
5. Could not find OpenBLAS
sudo apt-get install libopenblas-dev
6. Could not find OpenBLAS include...
sudo apt install liblapacke-dev
# gedit ~/opencv/cmake/OpenCVFindOpenBLAS.cmake
# 46行 SET(Open_BLAS_INCLUDE_SEARCH_PATHS)下添加
/usr/include/x86_64-linux-gnu
...
# 58行 SET(Open_BLAS_LIB_SEARCH_PATHS)下添加
/usr/lib/x86_64-linux-gnu
7. Could not find JNI
下载jdk到ubuntu上并安装,然后在CMakeLists.txt里寻找Java,在里面添加下面内容
8. ‘int lapack_Cholesky(fptype*, size_t, int, fptype*, size_t, int, bool*)’:
解决方案:cmake -DWITH_LAPACK=OFF ..
9. error: ‘CODEC_ID_H264’ was not declared in this scope
解决方案:cmake -DWITH_FFMPEG=OFF ..
10. error:comparting the result of pointer a ddition '(src + ((sizetype)off))’and NULL[-Werrorsaddress]
这种大概都是gcc版本过高导致的,我在编译的时候gcc版本是12,而opencv的版本是3.4.10,需要把gcc的版本降低到4或5。
11. ### Connecting to raw.githubusercontent.com :443... failed: Connection refused.
这个问题多是ubuntu不能连上github导致的,百度后看到很多种解法:
- 修改/etc/hosts,通过www.ipaddress.com/ 查询githubusercontent的ip 添加
185.199.108.133 raw.githubusercontent.com
- 修改/etc/resolv.conf,添加
nameserver 114.114.114.114
等等
这些都不太可靠我个人觉得,最简单的还是上github上面把缺的软件包下载下来直接修改。查看CMakeDownloadLog.txt,日志上面会提供所需要的包以及路径
① 进入 GitHub - opencv/opencv_3rdparty: OpenCV - 3rdparty 选择对应的
② 进入支路
③ 选择对应的包
④ 下载后把其路径修改到对应的文件中,我的在ippicv.cmake
保存后重新cmake即可。
装了好几天,遇到了各种各样的问题,最重要的是在安装前记得快照一下前面的虚拟机,不然出问题就要全部重来了😭