这是我第一次使用 Virtualbox 以及与 Linux 和 Ubuntu 相关的任何东西。我会尽量使我写的信息尽可能准确。
我在 Windows 上的 Virtualbox 中安装了 Ubuntu 16.04 版(Windows 7 运行在 32 位上)。下载并配置内核版本 5.0.2 后,我尝试使用“sudo make”来编译我的内核。
但是,可能会发生以下两个错误之一:
这是第一个错误:
scripts/link-vmlinux.sh: line 85: 1847 killed DFLAGS} ${LDFLAGS_VMLINUX} -0 ${2} -T ${lds} ${objects} Makefile:1019: recipe for target 'vmlinux' failed make: *** [vmlinux] Error 137
这是第二个错误:
ld: final link failed: Memory exhausted Makefile:1019: recipe for target 'vmlinux' failed make: *** [vmlinux] Error 1
据我了解,这与虚拟硬盘内存不足有关。目前,我已将 vdi 设置为 24GB,其实际大小为 15.15GB(动态分配)。
通过使用该swapon -s
命令,我可以看到我已经为我的/dev/sda5
分区使用了 522236 个分区中的 38400 个。没有列出其他文件。(通过使用“free”命令,522236 个分区中的 483836 个分区可供交换分区使用。)
通过使用该df -h
命令,尝试编译我的内核后,24G 中已经使用了 13G。
有人可以帮帮我吗?
答案1
这是旧帖子,但是我找到了这里,所以我想添加一些细节。
问题是编译器(或者更准确地说,gnu 链接器)内存不足。就我而言,我为内存分配了微不足道的 2GB。我将内存增加到 8GB,编译完成且没有错误。