Solaris 12.3 C++;编译器内存不足 我有一个生成24MB C++代码文件,将近5,00000行代码。当编译器优化级别设置为XO0时,我能够编译它,但是只要添加任何其他C++编译器标志(如XPrror……),就失败了。我使用Solaris Studio 12.3 C++编译器。
以下是控制台错误:Solaris 12.3 C++;编译器内存不足 我有一个生成24MB C++代码文件,将近5,00000行代码。当编译器优化级别设置为XO0时,我能够编译它,但是只要添加任何其他C++编译器标志(如XPrror……),就失败了。我使用Solaris Studio 12.3 C++编译器。,c++,compiler-errors,solaris-10,solaris-studio,C++,Compiler Errors,Solaris 10,Solaris Studio,以下是控制台错误: Element size (in bytes): 48 Table size (in elements): 2560000 Table maximum size: 134217727 Table size increment: 5000 Bytes written to disk: 0 Expansions required: 9
Element size (in bytes): 48
Table size (in elements): 2560000
Table maximum size: 134217727
Table size increment: 5000
Bytes written to disk: 0
Expansions required: 9
Segments used: 1
Max Segments used: 1
Max Segment offset: 134217727
Segment offset size:: 27
Resizes made: 0
Copies due to expansions: 4
Reset requests: 0
Allocation requests: 2827527
Deallocation requests: 267537
Allocated element count: 4086
Free element count: 2555914
Unused element count: 0
Free list size (elements): 0
ir2hf:错误:内存不足
提前感谢。我发现这表明它与Solaris减少数据段的内存量有关
按照博客中的步骤,尝试取消限制
$ usermod -K defaultpriv=basic,sys_resource karel
现在注销并再次登录并更改限制:
$ ulimit -d unlimited
然后检查限制是否已更改
$ ulimit -d
输出应该是无限制的我发现这表明它与Solaris为数据段提供的内存量有关
按照博客中的步骤,尝试取消限制
$ usermod -K defaultpriv=basic,sys_resource karel
现在注销并再次登录并更改限制:
$ ulimit -d unlimited
然后检查限制是否已更改
$ ulimit -d
输出应该是
无限制的
对不起,我的魔杖坏了,我怀疑其他人的也坏了。在主机上安装更多内存,或者(如果在虚拟机中运行)为虚拟机分配更多内存。如果编译器使用某些选项耗尽内存(编译级别是一个选项),这是一个公平的信号,它需要更多内存才能工作。一般来说,没有办法让编译器使用比所需内存更少的内存来完成任务。因此,您只需要为它提供更多可用内存。或者编辑该文件并从中创建一组较小的文件,然后分别编译它们。我的水晶球告诉我们尝试这样做:作为root:usermod-K defaultpriv=basic,sys\u resource
,然后作为user:ulimit-d unlimited
我不想将其制作成较小的文件,因为它是自动生成的文件。12.3已经很旧了。IIRC,这些工具当时仍然是32位的,所以它们不能使用超过4G的内存。你可能需要一个更新的编译器。对不起,我的魔杖坏了,我怀疑其他人的也坏了。在主机上安装更多内存,或者(如果在虚拟机中运行)为虚拟机分配更多内存。如果编译器使用某些选项耗尽内存(编译级别是一个选项),这是一个公平的信号,它需要更多内存才能工作。一般来说,没有办法让编译器使用比所需内存更少的内存来完成任务。因此,您只需要为它提供更多可用内存。或者编辑该文件并从中创建一组较小的文件,然后分别编译它们。我的水晶球告诉我们尝试这样做:作为root:usermod-K defaultpriv=basic,sys\u resource
,然后作为user:ulimit-d unlimited
我不想将其制作成较小的文件,因为它是自动生成的文件。12.3已经很旧了。IIRC,这些工具当时仍然是32位的,所以它们不能使用超过4G的内存。您可能需要一个更新的编译器。内存已设置为“无限”,但仍无法工作。您确定计算机上有足够的内存吗?我正在服务器上工作。它有足够的内存。平均负载:3.41、4.07、4.48 17:00:36 1211个进程:1199个休眠、3个僵尸、6个停止、3个cpu状态:92.2%空闲、3.5%用户、4.3%内核、,0.0%iowait,0.0%交换内存:160G实存,41G空闲,102G交换正在使用,20G交换空闲OK,看起来内存充足。抱歉,不知道如何解决此问题。内存已设置为“无限”,但仍无法工作。您确定计算机上有足够的内存吗?我正在使用服务器。它有足够的内存。平均负载:3.41、4.07、4.48 17:00:36 1211个进程:1199个休眠、3个僵尸、6个停止、3个cpu状态:92.2%空闲、3.5%用户、4.3%内核、,0.0%iowait,0.0%交换内存:160G实存,41G空闲,102G交换正在使用,20G交换空闲OK,看起来内存充足。对不起,我不知道怎么解决这个问题。