您的位置:首页 > 其它

gcc: 内部错误:文件大小超出限制 gcc: Internal error: File size limit exceeded

2010-10-08 15:20 1131 查看
今天使用gcc编译程序时,出现了如下错误:

gcc: 内部错误:文件大小超出限制

[root@hdfs05 COpFile]# gcc readxml.c
gcc: Internal error: File size limit exceeded (program as)
Please submit a full bug report.
See <URL:http://bugzilla.redhat.com/bugzilla> for instructions.

[root@hdfs05 COpFile]# gcc readxml.c
gcc: 内部错误:文件大小超出限制 (程序 cc1)
请提交一份完整的错误报告。
具体步骤请参见 <URL:http://bugzilla.redhat.com/bugzilla>。

解决办法:

这是由于我在shell中误操作了命令“ulimit 0”所导致的,
ulimit命令是用来限制用户的某些系统资源的,包括可以打开的文件数量、可

以使用的CPU时间、可以使用的内存总量、当前shell可以建立的最大文件容量等等

。命令具体使用请查阅相关资料,这里只介绍与文件大小限制相关的知识。

命令使用方式: ulimit [-SHacdfilmnpqstuvx] [配额]

ulimit默认的选项是 -f,即限制当前shell可以建立文件的最大容量,其单位

是KB,注意是当前shell,即若在当前shell中使用了 ulimit -f 命令,其作用范围

只是当前shell,不会作用于其他shell。

例如 :
ulimit 1024 = ulimit -f 1024 表示可以建立的最大文件容量是1024KB=1M。
使用 ulimit -f 或者ulimit可以查看限制的容量大小。如果不想限制创建文件的大

小,可以将配额赋值为unlimited,例如: ulimit unlimited 或 ulimit -f

unlimited。

由于我使用了命令 ulimit 0,最大文件是0,所以gcc编译会出现错误,
解决办法是:
在当前shell中运行命令 ulimit unlimited ;
或者
退出该shell,重新启动一个shell

此外,介绍一下 ulimit -c [配额] 命令,它是限制可以建立的最大核心文件(core files)的容量,在使用gdb调式程序时可能要用到它。

例如:

xiaosuo@gentux test $ ulimit -c
0
xiaosuo@gentux test $ ulimit -c 1000
xiaosuo@gentux test $ ulimit -c
1000
xiaosuo@gentux test $ ./a.out
段错误 (core dumped)

编译出现错误,产生了core文件,
用gdb调试一下core文件:
xiaosuo@gentux test $ gdb ./a.out core
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐