gpt4 book ai didi

c++ - cc1plus : Virtual memory exhausted

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:48:26 26 4
gpt4 key购买 nike

我正在尝试在 Linux 中使用 qcc 在 QNX Momentics IDE (4.6) 中构建一个项目。我未能成功构建过程并出现以下错误:

virtual memory exhausted: Cannot allocate memory
/opt/qnx641/host/linux/x86/usr/lib/gcc/i386-pc-nto-qnx6.4.0/4.3.3/cc1plus error 1

项目有一个cpp文件,里面有1.3以上的MLOC。这是一个从大型 Matlab/SIMULINK 仿真模型自动生成的代码,因此不容易分而治之。

很难理解这是qcc编译器的LOC限制还是由于自动生成代码中的编程习惯。

我想问:

  • qcc 是否有源文件大小限制?
  • 导致这种情况的不良编程习惯是什么?
  • 对于修复 cc1plus 的virtual memory exhausted 问题有什么建议吗?

最佳答案

Q1: qcc 有源文件大小限制吗?A1:qcc = gcc。更准确地说:qcc 是调用 gcc 的轻量级包装器;所有真正的工作都是由 gcc 完成的。 GNU 软件,作为一般哲学,旨在不强加任意限制,我认为这对 gcc 尤其如此。即使存在任意限制,您也不会因为系统内存不足而达到这些限制。随机链接:预处理器限制:http://gcc.gnu.org/onlinedocs/cpp/Implementation-limits.html一些 gcc 限制基准测试:gcc module size limits

Q2:导致这种情况的不良编程习惯是什么?A2:例如,如您所演示的那样,将所有源代码转储到一个文件中。我会说这个问题与您的案例无关,因为您已经声明您无法控制生成的代码。

Q3:有什么解决cc1plus虚拟内存耗尽问题的建议吗?A3:a) 将更多内存放入您的主机(可能有帮助也可能无帮助,具体取决于您有多少内存以及您的操作系统是 32 位还是 64 位); b)增加你的交换空间(同样适用); c) 如果 a/b 没有帮助,则将您的操作系统升级到 64 位并再次尝试 a/b。不幸的是,这个 64 位建议几乎肯定不适用于 QNX 6.4.1 附带的 gcc 版本。甚至可能不是最新的。

作为一般性建议,由于 qcc 使用 gcc,我建议您使用主机的 gcc(Linux 附带的 gcc)构建相同的代码。一旦成功,您可能会开始寻找差异,这可能归结为 64 位支持。

关于c++ - cc1plus : Virtual memory exhausted,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21577816/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com