This is a creation in Article, where the information may have evolved or changed.
Golang Support cross-compilation, on one platform to generate another platform executable program, recently used, very useful, here is a memo.
Linux and Windows 64-bit executables are compiled under MAC
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.goCGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
Linux under Compile Mac and Windows 64-bit executable program
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.goCGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
32-bit system
Set goarch=386
Windows compiles MAC and Linux 64-bit executables
SET CGO_ENABLED=0SET GOOS=darwinSET GOARCH=amd64go build main.goSET CGO_ENABLED=0SET GOOS=linuxSET GOARCH=amd64go build main.go
GOOS: The operating system of the target platform (Darwin, FreeBSD, Linux, Windows)
Goarch: Architecture of the target platform (386, AMD64, ARM)
Cross-compilation does not support CGO so to disable it
The above command compiles a 64-bit executable, and you should of course use 386 to compile the 32-bit executable program
Many blogs have mentioned the need to increase support for other platforms first, but I skipped that step, the commands listed above will be successful, and I'll get the results I want, so that the step should be non-mandatory, or the Go version I'm using has default support for all platforms.