Go Cross-Compilation Mac to Linux: Difference between revisions
Jump to navigation
Jump to search
(→Cgo) |
|||
(One intermediate revision by the same user not shown) | |||
Line 10: | Line 10: | ||
export GOARCH=amd64 | export GOARCH=amd64 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=Cgo= | =Cgo= | ||
Line 25: | Line 24: | ||
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 [...] | 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> | ||
<font color=darkkhaki>Even if the program seems to be compiling successfully, and the executable is produced, when trying to run it from a Linux VM I get bash: ./yunikorn-scheduler: No such file or directory, which tells me that something is wrong with the file.</font> |
Latest revision as of 03:56, 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
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 [...]
Even if the program seems to be compiling successfully, and the executable is produced, when trying to run it from a Linux VM I get bash: ./yunikorn-scheduler: No such file or directory, which tells me that something is wrong with the file.