Linux内存不足怎么办?

  • 2
  • 1,062 °C
  • A+
所属分类:小把戏录
摘要

在做嵌入式开发的时候,常常会遇到一些因为内存不足而导致编译失败的情况,这种情况应该如何解决呢?

Linux内存不足怎么办?

一、前言

在做嵌入式开发的时候,常常会遇到一些因为内存不足而导致编译失败的情况。例如:gcc编译出现internal compiler error:Killed,就是一个典型的因为内存(Memory)不足的错误。遇到诸如此类的情况,应该如何解决呢?

二、开辟Swap分区

Windows内存不足,可以直接开虚拟分区。Linux也是相似的道理。Linux下编译东西的时候,如果内存不足了,那么程序会使用swap分区,我们无法轻易更改内存大小,但是swap分区是可控的,所以可以从这里下手。

内存查看:

我们可以使用如下指令查看内存和Swap分区的使用情况:

1、使用硬盘创建

如果我们的硬盘空间够用,那么就可以使用硬盘创建我们的分区。

创建分区文件,大小为2G:

生成 swap 文件系统:

激活 swap 文件:

这样,我们就实现了临时挂在swap分区,如果想重启的时候也自动挂在swap分区,可以修改/etc/fstab文件,添加内容如下:

这样每次重启系统的时候就会自动加载 swap 文件了。

2、使用U盘创建

如果硬盘资源也有限,那就尴尬了,内存内存不足,硬盘硬盘不够,很痛苦。不过即使这样,我们依然可以想办法解决。

首先,插入我们的U盘,使用如下指令查看设备名:

找到我们的U盘设备名,比如这个设备名为/dev/sda4。

随后,我们卸载已经挂载的U盘:

然后,将该设备创建为swap分区:

修改/etc/fstab文件,添加内容如下:

最后,开启swap分区:

使用完U盘的这个swap分区,去掉这个swap分区后。再插入U盘,可能会遇到Error mounting /dev/sda4 at /media/XXXX: Command-line `mount -t "ntfs" -o这样的错误。解决办法也很简单,将错误的那个分区使用命令修复一下即可:

三、总结

今天突然遇到了这个老问题,之前没有记录,因此查询资料又耽误了很多时间,今天小小记录一下,方便今后回顾。

Jack Cui

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  1   博主  1

    • avatar 卷卷 来自天朝的朋友 谷歌浏览器 Windows 10 辽宁省沈阳市 东北大学四舍(女生) 2

      出差还不忘写博客 真敬业~

        • avatar Jack Cui Admin 来自天朝的朋友 谷歌浏览器 Windows 10 北京市 电信通

          @卷卷 呃0.0,因为昨天编译遇到了问题,记录了一下。