Golang 可在任何平台上做 cross compile
所以可以在MacOSX編譯出Linux的可執行檔
只要給定編譯平台的環境變數
go build時就會依照環境變數
編譯出相對應的平台
env GOOS=target-OS GOARCH=target-architecture go build package-import-path
支援的 target os 跟 target architecture 如下表
所以要在 Mac 上編譯出 Linux 的可執行檔
只需要如下指令:
GOOS=linux GOARCH=amd64 go build
這時候我們用 file 查看檔案屬性會發現是一個 LSB executable
ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, with debug_info, not stripped