Go Cross-Compilation Mac to Linux: Difference between revisions
Jump to navigation
Jump to search
(→Cgo) |
|||
Line 24: | 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.