情况:刚刚安装了linux,正在尝试学习编码c。使用 sudo apt-get install build-essential 进行设置。在我的代码中打开 nano type
#include <stdio.h>
int main(int argc, char *argv[])
{
puts("Hello World.\n");
return 0;
}
打开另一个控制台选项卡,输入 make ex1 然后我的世界向下旋转到我在我的第一个 Linux 发行版上还没有经历过的最黑暗的深渊。
ragnar@ragnar:~/Documents/C$ make ex1
cc -Wall -g ex1.c -o ex1
ex1.c:7:1: fatal error: error closing /tmp/cc8d7Oap.s: No space left on device
}
^
compilation terminated.
make: *** [ex1] Error 1
ragnar@ragnar:~/Documents/C$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdb5 4.0G 3.8G 0 100% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 7.9G 8.0K 7.9G 1% /dev
tmpfs 1.6G 1.4M 1.6G 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 7.9G 8.1M 7.9G 1% /run/shm
none 100M 28K 100M 1% /run/user
/dev/sdb2 96M 29M 68M 30% /boot/efi
/dev/sdb7 11G 248M 9.5G 3% /home
感谢所有帮助。
最佳答案
包含根文件夹 (/
) 的分区已 100% 满。根文件夹目前还包含/tmp
文件夹,用于编译时存放临时文件。由于根文件夹和 tmp 文件夹已满,因此失败。
要解决此问题,请添加更多空间或重新组织现有空间。
作为解决方法
mkdir ~/tmp
export TMPDIR=~/tmp
并重试编译。
组织文件系统的一种灵活方式是使用单独的分区
/
/usr
/home
/var
/tmp
一种懒惰的方法是将 /tmp/
链接到 /var/tmp
。然而,这可能会导致问题,因为在清理方面,操作系统可能会处理 /var/tmp
中与 /tmp
中的内容不同的内容。也就是说 /tmp/
的内容会在每次启动时被删除,而 /var/tmp
则不会。
关于c - 无法用 make 编译 | fatal error 设备上没有剩余空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31493663/