golang 跨平台编译

陈Sir的知识库 · · 884 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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

命令行方式

因为不支持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

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:陈Sir的知识库

查看原文:golang 跨平台编译

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

884 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传