树莓派编译opencv,关于99%卡死的解决方法

用树莓派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

树莓派编译opencv,关于99%卡死的解决方法_第1张图片
等了半个小时左右终于编译成功了,泪流满面啊!!
树莓派编译opencv,关于99%卡死的解决方法_第2张图片
来一张显示图片的灰度的图片吧
树莓派编译opencv,关于99%卡死的解决方法_第3张图片
参考链接
树莓派swap交换分区的修改方法

你可能感兴趣的:(树莓派编译opencv,关于99%卡死的解决方法)