前言:
刚才在云服务器上编译安装OpenCV,已经到99%了,结果失败了,重复继续好几次都是进程被杀掉了,才注意了一下编译时的资源占用情况,云服务器的2GB运行内存基本都占满了.
因此猜测是进程占用过高被系统杀掉了,之前在本地PC和树莓派4B(4G)上编译内存是够用的,倒是没遇到这种情况,也没关注,所以又特意再次在本地编译试验,发现最高占用时会差不多接近3GB. 所以更肯定判断是内存不够时系统杀掉高占用的进程导致构建OpenCV失败.
然后马上为云服务器添加了4GB的swap文件,成功编译完. 特做以下纪录. (Linux上的swap类似于Windows的虚拟内存)
ps:下面命令中有中括号
括起来的将括号和所扩内容自行替换
正文:
创建swap文件
填充一个文件用作swap (耗时)
[swap的文件名]
是用作swap文件的文件名,自行设定
需要设置的swap大小 = 1M * [块数量]
设置1GB就是 1M * 1024,即 [块数量]
为 1024
sudo dd if=/dev/zero of=[swap文件名] bs=