windowsmacosgocross-compiling

Is it possible to use the Go compiler to distribute a executable file for other os?


I am currently working on Mac OS X, now I need to build a .exe file so that the Go program can run on windows. So here is the question, how to build a executable file for Win X86 under MacOS amd64 ? or Is it impossible to do so ?


Solution

  • If you don't use CGo but pure Go, then it's perfectly doable and standard.

    First you have to make the Go environment on your development computer for the targets. Supposing your Go installation is in ~/var/go, this may be this :

    cd ~/var/go/src
    CGO_ENABLED=0 GOOS=windows GOARCH=386 ./make.bash
    

    Then you compile with the good GOOS and GOARCH :

    GOOS=windows GOARCH=386 go build -o hello.exe hello.go
    

    Here's the go-wiki page on building a windows exe on linux.