【问题标题】:gcc: No space left on device?gcc:设备上没有剩余空间?
【发布时间】:2013-02-04 18:30:28
【问题描述】:

我正在尝试在 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 突然决定放弃的任何想法? (它之前工作过)提前谢谢。

【问题讨论】:

  • 您正在编译的代码有什么大到离谱的地方吗?你能在编译过程中跟踪内存使用情况吗?

标签: memory gcc ubuntu compilation


【解决方案1】:

在我看来,您的 /tmp 目录实际上是作为 devtmpfs 安装的,如果我没记错的话,它实际上是您计算机的 RAM。

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-29
      • 2012-01-14
      • 2012-05-15
      • 2018-11-22
      • 2015-07-21
      • 2020-12-16
      • 2014-11-20
      相关资源
      最近更新 更多