cc1plus.exe:-1: error: out of memory allocating 65536 bytes

笔者在qt编译lvgl遇到的抽象错误,以此篇文章做以记录。笔者的电脑开的进程比较多,关掉几个应用即可解决。详情如下:

你遇到的错误信息:

cc1plus.exe:-1: error: out of memory allocating 65536 bytes

这是编译器(GCC 或类似工具链)在编译 C++ 代码时,尝试分配 64KB 内存失败,导致编译中断。


可能原因

  1. 系统内存不足
    • 你的电脑当前可用内存(包括物理内存和虚拟内存)不够,编译器分配内存失败。
  2. 编译器或环境配置问题
    • 编译器进程限制了可用内存,比如32位编译器在某些环境下内存受限。
  3. 项目过大、代码复杂
    • 编译的单个翻译单元(cpp文件)过大,使用了大量模板、内联代码,导致编译器内存需求大。
  4. 编译器版本或BUG
    • 使用的编译器版本存在内存管理相关bug。
  5. 编译环境有问题
    • 例如MinGW的cc1plus.exe与系统不兼容。
  6. 杀毒软件或系统安全软件干扰
    • 有时安全软件会限制编译器分配内存。

解决建议

  1. 关闭占用大量内存的程序

    • 关闭浏览器、大型IDE或其他占用内存的软件,腾出更多内存。
  2. 增加虚拟内存(页面文件)大小

    • 在 Windows 中调整虚拟内存设置,增大页面文件。
  3. 减少单个源文件大小

    • 拆分过大的 .cpp 文件,避免单文件包含过多模板和代码。
  4. 优化代码减少模板或内联函数的过度使用

    • 模板过度实例化会大量消耗编译器内存。
  5. 升级或更换编译器

    • 使用较新版本的 GCC / MinGW-w64,或尝试 Clang。
  6. 使用 64 位编译器

    • 32 位编译器受限于 2GB 内存空间,64 位编译器能利用更多内存。
  7. 检查杀毒软件设置

    • 暂时关闭杀毒软件测试是否干扰。
  8. 清理项目并重新编译

    • 清理缓存,重新生成项目。

如果你在使用 QtCreator

  • 检查 Kits 配置,确保使用的编译器是 64 位(例如 MinGW-w64 64-bit)
  • 在 QtCreator 的 “构建环境” 中,确保没有限制内存相关环境变量
  • 尝试增加 QtCreator 的内存限制(如果有)

总结

  • cc1plus.exe 报“out of memory”表示编译器分配内存失败。
  • 先检查系统内存和虚拟内存是否足够。
  • 尝试升级编译器或拆分代码。
  • 确认使用了64位编译器环境。
  • 关闭会影响编译器的安全软件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chunxin@Jiaju

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值