我有一个 swig 生成的 C++ 代码文件,大小为 24MB,将近 5,00,000 行代码。当将编译器优化级别设置为 xO0 时,我能够编译它,但是一旦我添加任何其他 C++ 编译器标志(如 xprofile ...)就会失败。我正在使用 Solaris Studio 12.3 C++ 编译器。
控制台报错如下:
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: 错误:内存不足
提前致谢。
最佳答案
我找到了这个 article这表明它与 Solaris 数据段的内存量有关。
按照博客中的步骤,尝试解除限制。
$ usermod -K defaultpriv=basic,sys_resource karel
现在注销并再次登录并更改限制:
$ ulimit -d unlimited
然后检查limit有没有变化
$ ulimit -d
输出应该是unlimited
关于c++ - Solaris 12.3 C++ 编译器内存不足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54627435/