c++ - Solaris 12.3 C++ 编译器内存不足

标签 c++ compiler-errors solaris-10 solaris-studio

我有一个 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/

相关文章:

java - 在 Java 中获取硬链接(hard link)计数

c++ - 将十进制字符串转换为十六进制字符串而不将字符串转换为整数

时间:2019-03-08 标签:c++win32SendInput()

c++ - 从 std::vector 创建/填充 std::set 的 STL 方式

compiler-errors - 来自源的 'making' fontforge错误

unix - 如何将十进制转换为二进制,反之亦然

c - free() 在Solaris 10 的稀疏区域上随机返回SIGSEGV。为什么?

c++ - cout 函数调试断言失败

java - 莫名其妙的 "reference to println is ambiguous"编译错误

java - java编译错误: -Xlint causing problems