Hacker News new | ask | show | jobs
by pallinder 4698 days ago
go build

It compiles a binary, just send it to the server and it will run, no need to even have go installed on the server (or any libs really).

1 comments

Doesn't this require your development machine to use the same architecture and OS as your server?
No. It's simple to build Go toolchains for whatever your deploy os/arch target is. Then you just cross-compile.

* Download Go source

* Extract, cd go/src/

* GOOS=linux GOARCH=386 ./make.bash #this will build the linux_386 toolchain

* GOOS=linux GOARCH=amd64 ./make.bash #linux_amd64

* GOOS=linux GOARCH=arm ./make.bash #you get the picture

GOOS can be windows, darwin, freebsd, netbsd, plan9.

Then when you want to cross-compile your app, you do:

GOOS=linux GOARCH=arm go build myApp.go

That's it. Now you have a statically linked binary that you can drop on whatever your target is. As someone who has had to cross-compile a lot of C and C++ code, I find this simplicity to be a huge win.

Thanks for that. It's been a while since I used Go. That is quite nice.