笔者在qt编译lvgl遇到的抽象错误,以此篇文章做以记录。笔者的电脑开的进程比较多,关掉几个应用即可解决。详情如下:
你遇到的错误信息:
cc1plus.exe:-1: error: out of memory allocating 65536 bytes
这是编译器(GCC 或类似工具链)在编译 C++ 代码时,尝试分配 64KB 内存失败,导致编译中断。
可能原因
- 系统内存不足
- 你的电脑当前可用内存(包括物理内存和虚拟内存)不够,编译器分配内存失败。
- 编译器或环境配置问题
- 编译器进程限制了可用内存,比如32位编译器在某些环境下内存受限。
- 项目过大、代码复杂
- 编译的单个翻译单元(cpp文件)过大,使用了大量模板、内联代码,导致编译器内存需求大。
- 编译器版本或BUG
- 使用的编译器版本存在内存管理相关bug。
- 编译环境有问题
- 例如MinGW的cc1plus.exe与系统不兼容。
- 杀毒软件或系统安全软件干扰
- 有时安全软件会限制编译器分配内存。
解决建议
-
关闭占用大量内存的程序
- 关闭浏览器、大型IDE或其他占用内存的软件,腾出更多内存。
-
增加虚拟内存(页面文件)大小
- 在 Windows 中调整虚拟内存设置,增大页面文件。
-
减少单个源文件大小
- 拆分过大的 .cpp 文件,避免单文件包含过多模板和代码。
-
优化代码减少模板或内联函数的过度使用
- 模板过度实例化会大量消耗编译器内存。
-
升级或更换编译器
- 使用较新版本的 GCC / MinGW-w64,或尝试 Clang。
-
使用 64 位编译器
- 32 位编译器受限于 2GB 内存空间,64 位编译器能利用更多内存。
-
检查杀毒软件设置
- 暂时关闭杀毒软件测试是否干扰。
-
清理项目并重新编译
- 清理缓存,重新生成项目。
如果你在使用 QtCreator
- 检查 Kits 配置,确保使用的编译器是 64 位(例如 MinGW-w64 64-bit)
- 在 QtCreator 的 “构建环境” 中,确保没有限制内存相关环境变量
- 尝试增加 QtCreator 的内存限制(如果有)
总结
cc1plus.exe报“out of memory”表示编译器分配内存失败。- 先检查系统内存和虚拟内存是否足够。
- 尝试升级编译器或拆分代码。
- 确认使用了64位编译器环境。
- 关闭会影响编译器的安全软件。

2282

被折叠的 条评论
为什么被折叠?



