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

今天使用gcc编译程序时,出现了如下错误:

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

[root@hdfs05 COpFile]# gcc readxml.c
gcc: Internal error: File size limit exceeded (program as)
Please submit a full bug report.
See for instructions.


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

解决办法:

    这是由于我在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

你可能感兴趣的:(C/C++,gcc,file,shell,url)