用树莓派3b编译opencv4.1.0
1.添加树莓派的swap交换区和扩展sd卡
我是直接使用sd卡进行系统烧录镜像的,不用扩展sd卡,容量显示正确,但是为了防止编译卡死,要添加树莓派的swap交换分区,编辑dphys-swapfile文件,
nano /etc/dphys-swapfile
将conf_swapsize 的值修改成你想要的大小,以mb为单位,设置为2G大小,保存之后,重启dphys-swapfile服务
sudo /etc/init.d/dphys-swapfile restart
最后查看交换空间的大小
free -m
2.下载和编译opencv
具体编译过程查看下面这篇文章:
3.编译报错
报了两次文件缺失的错误,排错的方法参考下面这篇文章:
文件缺失报错解决方法
4.编译过程
编译的过程时间非常长,可以用make -j4来加速进行编译,但是用多线程来进行编译的时候,前期编译速度很快,但是到大概到70%的时候,编译的速度就越来越慢,一晚上只编译了5%!!!,早上醒来的时候,还卡在99%!!!,没办法我只好Ctrl+C中断之后重新编译,但还是卡在99%,我觉得有些奇怪,就打开了htop查看一下进程的信息,发现编译的进程根本就没有再运行,cpu的占用率也不太正确。进程的状态是D,查了一下之后得知,D状态表示进程正在不可中断的等待状态,我只好再次重新编译,但是这次我没有使用多进程进行编译,只用了make命令,果然正常了。
make -j4
等了半个小时左右终于编译成功了,泪流满面啊!!
来一张显示图片的灰度的图片吧
参考链接
树莓派swap交换分区的修改方法