golang 跨平臺編譯

只需要指定目標操作系統(tǒng)的平臺和處理器架構即可:

命令行方式

因為不支持CGO,所以要禁用CGO

SET CGO_ENABLED=0  // 禁用CGO
SET GOOS=linux  // 目標平臺是linux
SET GOARCH=amd64  // 目標處理器架構是amd64

然后再執(zhí)行go build命令,得到的就是能夠在Linux平臺運行的可執(zhí)行文件了。

Mac 下編譯 Linux 和 Windows 平臺 64位 可執(zhí)行程序:

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build

Linux下編譯 Mac 和 Windows 平臺64位可執(zhí)行程序:

CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build

Windows下編譯Mac平臺64位可執(zhí)行程序:

SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build

make file 方式

# Binary name
BINARY=your_app_name
# Builds the project
build:
        go build -o ${BINARY}
        go test -v
# Installs our project: copies binaries
install:
        go install
release:
        # Clean
        go clean
        rm -rf *.gz
        # Build for mac
        go build
        tar czvf ydict-mac64-${VERSION}.tar.gz ./ydict
        # Build for linux
        go clean
        CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
        tar czvf your_app_name-linux64-${VERSION}.tar.gz ./ydict
        # Build for win
        go clean
        CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
        tar czvf your_app_name-win64-${VERSION}.tar.gz ./ydict.exe
        go clean
# Cleans our projects: deletes binaries
clean:
        go clean

.PHONY:  clean build

整個過程看起來非常簡單,運行起來也非常簡單,調用make release命令,并給VERSION變量賦值不同的版本號即可:

make release VERSION=0.9

命令會編譯出不同平臺可運行的壓縮包:

ydict-mac64-0.9.tar.gz
ydict-linux64-0.9.tar.gz
ydict-win64-0.9.tar.gz
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容