Go Cross-Compilation Mac to Linux: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
(Created page with "=Internal= =Overview= Set <code>GOOS</code> and <code>GOARCH</code> environment variables to appropriate...")
 
Line 9: Line 9:
export GOOS=linux
export GOOS=linux
export GOARCH=amd64
export GOARCH=amd64
</syntaxhighlight>
=Cgo=
{{External|https://go.dev/blog/cgo}}
If Cgo is needed:
<syntaxhighlight lang='bash'>
brew install FiloSottile/musl-cross/musl-cross
</syntaxhighlight>
<syntaxhighlight lang='bash'>
export CC=x86_64-linux-musl-gcc; export CXX=x86_64-linux-musl-g++;  export GOOS=linux; export GOARCH=amd64; export CGO_ENABLED=1; go build [...]
</syntaxhighlight>
</syntaxhighlight>

Revision as of 03:17, 9 December 2023

Internal

Overview

Set GOOS and GOARCH environment variables to appropriate values, during the build.

To build on Mac for Linux:

export GOOS=linux
export GOARCH=amd64


Cgo

https://go.dev/blog/cgo

If Cgo is needed:

brew install FiloSottile/musl-cross/musl-cross
export CC=x86_64-linux-musl-gcc; export CXX=x86_64-linux-musl-g++;  export GOOS=linux; export GOARCH=amd64; export CGO_ENABLED=1; go build [...]