美文网首页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

相关文章

  • macOS Golang 1.5+ 跨平台编译

    Go (Golang) GOOS and GOARCH 列表 跨平台编译时命令示例

  • Golang 交叉编译

    golang 跨平台(跨操作系统系统)编译 Windows 下编译 Mac 64位可执行程序: Windows 下...

  • golang跨平台编译

    在windows上编译Linux: set CGO_ENABLED=0set GOOS=linuxset GOAR...

  • Golang 跨平台编译

    跨平台编译 默认我们go build的可执行文件都是当前操作系统可执行的文件,如果我想在windows下编译一个l...

  • golang 跨平台编译

    只需要指定目标操作系统的平台和处理器架构即可: 命令行方式 因为不支持CGO,所以要禁用CGO 然后再执行go b...

  • golang 跨平台编译

    第一次接触跨平台编译是在阅读 evio 源码的时候, 发现它的internal包下面的 internal_linu...

  • 【golang】跨平台交叉编译

    Go语言支持交叉编译,在一个平台生成另一个平台的可执行程序 Mac 下编译 Linux 和 Windows 64位...

  • Go语言学习心得

    17年接触golang,虽然早就听说 golang 并发能力强、跨平台无虚拟机、自动GC、快速编译等特点,但实际...

  • 搭建golang跨平台编译环境

    环境配置 安装Docker 安装golang 安装xgo镜像及编译指令 配置环境变量 1. 安装docker 针对...

  • go如何进行交叉编译

    golang交叉编译 问题 golang如何在一个平台编译另外一个平台可以执行的文件。比如在mac上编译Windo...

网友评论

    本文标题:golang 跨平台编译

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