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.