gcc: 设备上没有剩余空间?

5
我正在尝试使用Ubuntu 10中简单的gcc命令编写一些C代码,但出现了错误:
Cannot create temporary file in /tmp/: No space left on device

事实上,我磁盘上的空间还很充足。以下是df -h的输出结果:
Filesystem            Size  Used Avail Use% Mounted on
/                     3.7G  2.4G  1.1G  70% /
devtmpfs              312M  112K  312M   1% /dev
none                  312M   24K  312M   1% /dev/shm
none                  312M   80K  312M   1% /var/run
none                  312M     0  312M   0% /var/lock
none                  312M     0  312M   0% /lib/init/rw

如果您想了解关于索引节点(inode)的信息,请使用 df -i 命令:

Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/                     240960  195198   45762   82% /
devtmpfs               79775     609   79166    1% /dev
none                   79798       3   79795    1% /dev/shm
none                   79798      41   79757    1% /var/run
none                   79798       2   79796    1% /var/lock
none                   79798       1   79797    1% /lib/init/rw

我也可以成功执行touch /tmp/test,所以我知道磁盘上有足够的空间。为什么gcc突然决定出问题了呢?(之前它一直都能工作)提前感谢。


你正在编译的代码是否有任何异常庞大?在编译过程中,你能否跟踪内存使用情况? - Jonathan Leffler
2个回答

9

我看你的 /tmp 目录实际上是以 devtmpfs 挂载的,如果我没记错的话,这实际上是你计算机的内存。

你可以尝试重新启动计算机来解决问题,或者增加虚拟内存分区,或者关闭一些正在运行的程序来解决问题。此外,你也可以删除一些不必要的 /tmp 目录下的文件,因为它们只在本次会话中有用。


6

中间文件太大无法存储在/tmp目录下,因此可以尝试使用其他临时目录(TMPDIR=/var/tmp g++ ...)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接