Compile 32 bit binary on 64 bit system

If you built your Go from source, then you can build any additional compilers and libraries for any CPU and OS. If you are on windows/amd64 and want to build for windows/386, then this will build everything you need to compile for windows/386:

set GOARCH=386  
cd %GOROOT%\src  
make.bat --no-clean  

Once you have done that, you can build your windows/386 executable with:

set GOARCH=386  
cd %YOUR_PROG_DIR%  
go build  

Since you are on windows/amd64, you should be able to even run / test your windows/386 programs too. Just make sure to set GOARCH=386 before you invoke any commands for windows/386.

One caveat: this does not support cgo, so you cannot use any packages that use cgo.


The way I have achieved this (without any compiling of the compiler) on my Windows 7 64 bit PC was first having the windows amd64 installed, then download 32bit zip and unpack to a second folder:

\go\go32
\go\go64

By then adjusting the PATH and the GOROOT inside my command prompt window as follows:

set PATH=\go\go32;%PATH%
set GOROOT=\go\go32\

Then I went back and recompiled my app that was previously compiling using the 64 bit. All this can be setup in a batch if you want to switch between regularly.

Tags:

Windows

Go