One of Golang’s strengths is that it supports cross-compiling to any common Operating System and CPU architecture out of the box. However, that’s only true for projects written in pure Go. Normally that’s not a problem, but sometimes we depend on 3rd-party C libraries… and that’s when things tend to get complicated.
In this post, I will explain how you can cross-compile your cgo project for multiple operating systems and architectures in a clear and structured manner.