Internal compiler error #12345: error mmapping datablock to 33556079.
Note: you may have one or two (large) stale temporary file(s) left in your temporary directory (Generally this only happens on Windows 9x).
最近在使用NSIS打包一个7.3GB的可执行程序时,出现上述错误信息。从错误信息可以看出,临时文件太大引发了这个错误。在选择程序文件时,我使用目录树添加了所有的程序文件,也就是图下这个:
这样导致的问题可能是NSIS会首先查找.exe文件,然后将其它文件作为临时文件加载到系统,如果其它文件超过了2GB,那么可能超过了window系统所能支持的最大临时文件的大小(错误信息说只有window 9t才这样,但是用的是win11 64位,不知道这俩是否为同一个架构的系统)。我在CSDN看到了大家分享的答案,作者应该自己试过了,但是我始终觉得还有更好的办法,于是使用英文搜索,得到的答案是:主可执行文件exe单独导入,其它文件复制到另外一个文件夹,然后以目录树的方式导入。其实上图也给出了办法,即:
我按照上述所说的操作制作安装包时,就能正常编译了,把一个大约7.3GB的可执行文件包制作了成了一个大约1.3GB的安装包,如下: