NSIS编译报错#12345:GrowBuf内存分配失败求助
NSIS编译报错:Internal compiler error #12345: GrowBuf realloc/malloc(543160296) failed 问题分析与解决
问题场景
在Windows 11环境下使用NSIS 3.1编译大型安装包项目时,触发如下编译器内部错误:
Internal compiler error #12345: GrowBuf realloc/malloc(543160296) failed
系统附带提示临时目录可能存在大体积过期临时文件(该提示通常针对Windows 9x系统),但项目最终安装包未超过NSIS官方规定的2GB上限。
排查动作
- 更换另一台机器编译,问题复现
- 移除部分代码简化项目后,编译成功
根本原因推测
该报错核心是NSIS编译器处理大型项目时内存分配不足。尽管最终安装包体积未超2GB,但编译过程中编译器需要在内存中同时处理大量脚本逻辑、资源文件、待压缩数据等内容,当这些内容的内存占用累计超过编译器可分配的阈值时,就会触发GrowBuf内存分配失败的错误。
已验证的解决方法
通过大幅拆分安装包为多个小模块,降低单个编译任务的内存负载,成功解决该报错。
内容的提问来源于stack exchange,提问作者Aaron Friesenborg
相关产品推荐
相关产品推荐

