树莓派3安装OpenCV遇make中断及Error 2错误,求解决方法
解决树莓派3编译OpenCV时的中断与Error 2问题
嘿,我看你在树莓派3上编译OpenCV时碰到了俩头疼的问题——编译中途中断,还有最后蹦出来的Error 2。结合树莓派3的硬件特性,我给你整理了几个靠谱的解决办法,你挨个试试:
1. 先搞清楚编译中断的原因
你第一份错误日志里有^C标记,这大概率是不小心按了Ctrl+C手动终止了编译。如果是这种情况,直接重新跑make命令就行。但如果是树莓派内存不够导致系统自动终止编译,那得做这俩优化:
- 扩容交换分区:树莓派默认的交换分区太小,编译OpenCV很容易内存不足。扩容步骤如下:
# 先停掉当前交换分区服务 sudo dphys-swapfile stop # 打开交换分区配置文件 sudo nano /etc/dphys-swapfile # 把里面的CONF_SWAPSIZE改成1024(1GB)或者2048(2GB),保存退出 # 重新配置并启动交换服务 sudo dphys-swapfile setup sudo dphys-swapfile start - 限制编译线程数:树莓派3是4核,但全核心编译会把内存占满,改成2线程编译更稳妥:
make -j2
2. 搞定make: *** [Makefile:163: all] Error 2
这个错误一般是某个模块编译失败导致的,可能是依赖缺了、缓存有问题,或者编译参数不对。试试这些操作:
- 清理编译缓存,重新配置CMake:旧的编译缓存可能残留问题,清空重来:
# 先进入你的OpenCV编译目录 cd your_opencv_build_dir # 清理之前的编译文件 make clean # 删除CMake缓存文件 rm -rf CMakeCache.txt - 检查并补全依赖:编译OpenCV需要不少基础依赖,确保都装齐了:
sudo apt-get update && sudo apt-get install -y build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install -y libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev - 禁用不必要的测试模块:默认编译会构建测试和性能测试模块(比如你日志里的
opencv_test_imgproc、opencv_perf_imgproc),这些不是必须的,禁用能大幅减少编译压力:
这里加的cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D BUILD_TESTS=OFF \ -D BUILD_PERF_TESTS=OFF \ -D ENABLE_NEON=ON \ -D ENABLE_VFPV3=ON \ ..ENABLE_NEON和ENABLE_VFPV3是开启树莓派3的硬件加速,不管是编译还是后续运行OpenCV都更快。
3. 实在搞不定?试试预编译包
如果源码编译实在麻烦,树莓派软件源里有现成的OpenCV预编译包,安装简单还不会出编译问题:
sudo apt-get update && sudo apt-get install -y python3-opencv opencv-data
装完之后可以用这条命令验证:
python3 -c "import cv2; print(cv2.__version__)"
能输出版本号就说明成了。
内容的提问来源于stack exchange,提问作者Mạnh Lệ
相关产品推荐
相关产品推荐

