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

时间:2013-02-04 18:30:28

标签: memory gcc ubuntu compilation

我正在尝试使用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

和df -i,如果你想知道inode:

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决定突然之间的任何想法? (它工作得更早)事先谢谢。

2 个答案:

答案 0 :(得分:8)

我认为您的/ tmp目录实际上是作为devtmpfs挂载的,如果我没记错的话,它实际上就是您计算机的RAM。

您可以随时重新启动并查看是否有帮助,增加虚拟内存分区,或者您可以关闭正在运行的程序以查看是否有帮助。另外,您可以从/ tmp中删除一些不必要的文件,因为它们至少在会话期间是易变的。

答案 1 :(得分:3)

中间文件对于/tmp来说太大了,所以可能使用另一个临时目录(TMPDIR=/var/tmp g++ ...)会有所帮助。