Archive: I get "Internal compiler error #12345" when compiling large installers


I get "Internal compiler error #12345" when compiling large installers
I'm using version 2.44 of NSIS, and my disk free space have around 22GB (My disk is using NTFS).

When compiling my script to pack my files (around 7GB), I get these error text:
---------------------------------------------------
Internal compiler error #12345: error mmapping file (xxxxxxxxxx, xxxxxxxx) is out of range.

Note: you may have one or two (large) stale temporary file(s)
left in your temporary directory (Generally this only happens on Windows 9x).
---------------------------------------------------
How to solve this problem?

I'm from Taiwan.... If my meaning is not clear, I'm sorry.


12345 forum search http://forums.winamp.com/search.php?...der=descending
And I remember 2GB limit for single file installer.


There is also a NSIS FAQ which covers this and many other topics:

http://nsis.sourceforge.net/FAQ


Originally posted by Takhir
12345 forum search http://forums.winamp.com/search.php?...der=descending
And I remember 2GB limit for single file installer.
In NSIS Users Manual ( 1.3 Feature List ), there have a text "Installers can be as large as 2GB".
Why it can't pack files which around 7GB?

Originally posted by s1994928
In NSIS Users Manual ( 1.3 Feature List ), there have a text "Installers can be as large as 2GB".
Why it can't pack files which around 7GB?
that's right

Originally posted by jaromanda
that's right
How to solve this problem?

Place your datafiles into a separate folder from the .exe, use CopyFiles instruction to copy the file(s) from that location to the intended install location. If you're distributing this over the web, then archive this distibution using your favorite > 2GB archiver (RAR, 7zip?)* or create an ISO file**

* Some of the archivers let you build a self-extracting archive that works like a .exe, and which let you specify a program to run when done extracting.. i.e. your actual installer.

** ISO files are pretty commonly used when distributing huge datasets. The user can then opt to burn this to CD/DVD or mount directly using e.g. Microsoft's virtual CD.


Originally posted by Animaether
Place your datafiles into a separate folder from the .exe, use CopyFiles instruction to copy the file(s) from that location to the intended install location. If you're distributing this over the web, then archive this distibution using your favorite > 2GB archiver (RAR, 7zip?)* or create an ISO file**

* Some of the archivers let you build a self-extracting archive that works like a .exe, and which let you specify a program to run when done extracting.. i.e. your actual installer.

** ISO files are pretty commonly used when distributing huge datasets. The user can then opt to burn this to CD/DVD or mount directly using e.g. Microsoft's virtual CD.
Thanks.
I will try it when having free time.

You may want to read this too:
http://nsis.sourceforge.net/Multi-volume_Distribution

And here's the page for the CabDLL plugin:
http://nsis.sourceforge.net/CabDLL_plug-in


Originally posted by Comperio
You may want to read this too:
http://nsis.sourceforge.net/Multi-volume_Distribution

And here's the page for the CabDLL plugin:
http://nsis.sourceforge.net/CabDLL_plug-in
Thanks, I will try CabDLL...

I want to ask a question....
Could I use File instruction to pack cabinet file into installer?

For example:
------------------------------------
SetOutPath "$TEMP"
File "cabinet_file.cab"
CabDLL::Ca******ctAll "$TEMP\cabinet_file.cab" $INSTDIR
------------------------------------

I also find a plugin "nsis7z", it can extract 7-Zip file.

However, I ultimately hope that I can pack files without these plugin...
Really no other way to realize it?


Why not fix this limit?
It is very inconvenient.

I want to install with only one setup application.


Recently I came across this error (#12345) and after some searching I found out it is NOT always tied with 2GB limit.

In my case the problem was in insufficient disk space on C:\ drive (Temp directory was located there).
Makensis.exe could not create temporary files required for building the resulting .exe file.

Resulting .exe was about 90MB big but my C:\ drive has about 40MB of left space so it was not enough to build it correctly.