美文网首页golang
golang 跨平台编译

golang 跨平台编译

作者: 陈sir的知识图谱 | 来源:发表于2020-08-28 13:49 被阅读0次

    只需要指定目标操作系统的平台和处理器架构即可:

    命令行方式

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

    SET CGO_ENABLED=0  // 禁用CGO
    SET GOOS=linux  // 目标平台是linux
    SET GOARCH=amd64  // 目标处理器架构是amd64
    

    然后再执行go build命令,得到的就是能够在Linux平台运行的可执行文件了。

    Mac 下编译 Linux 和 Windows 平台 64位 可执行程序:

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

    Linux下编译 Mac 和 Windows 平台64位可执行程序:

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

    Windows下编译Mac平台64位可执行程序:

    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
    

    相关文章

      网友评论

        本文标题:golang 跨平台编译

        本文链接:https://www.haomeiwen.com/subject/ytrlsktx.html