Golang 打包

构建/打包

使用 Go 的构建命令:

go 复制代码
go build

在包含 main 函数的包的目录下执行,它会生成一个可执行文件。文件名默认与包所在的目录名相同,但也可以使用 -o 选项来指定输出的文件名

交叉编译

Windows 环境下进行交叉编译以构建其他平台的可执行文件,你需要在命令行中设置 GOOS 和 GOARCH 环境变量

  1. 交叉编译到 Linux (amd64)
shell 复制代码
set GOOS=linux
set GOARCH=amd64
go build -o myapp-linux-amd64 myapp.go
  1. 交叉编译到 macOS (amd64)
shell 复制代码
set GOOS=darwin
set GOARCH=amd64
go build -o myapp-macos-amd64 myapp.go
  1. 交叉编译到 Linux (ARM)
shell 复制代码
set GOOS=linux
set GOARCH=arm
go build -o myapp-linux-arm myapp.go

注意:

在 Windows 命令提示符(CMD)中设置环境变量,应使用 set 命令

在 PowerShell,则应该使用 $env:GOOS 和 $env:GOARCH 变量,例如:

shell 复制代码
$env:GOOS="linux"
$env:GOARCH="amd64"
go build -o myapp-linux-amd64 myapp.go

要查看支持的所有系统和架构,运行如下命令即可:

go 复制代码
go tool dist list

我的输出如下:

go 复制代码
aix/ppc64
android/386
android/amd64
android/arm
android/arm64
darwin/amd64
darwin/arm64
dragonfly/amd64
freebsd/386
freebsd/amd64
freebsd/arm
freebsd/arm64
freebsd/riscv64
illumos/amd64
ios/amd64
ios/arm64
js/wasm
linux/386
linux/amd64
linux/arm
linux/arm64
linux/loong64
linux/mips
linux/mips64
linux/mips64le
linux/mipsle
linux/ppc64
linux/ppc64le
linux/riscv64
linux/s390x
netbsd/386
netbsd/amd64
netbsd/arm
netbsd/arm64
openbsd/386
openbsd/amd64
openbsd/arm
openbsd/arm64
plan9/386
plan9/amd64
plan9/arm
solaris/amd64
wasip1/wasm
windows/386
windows/amd64
windows/arm
windows/arm64
相关推荐
tachibana21 小时前
Go 语言里的 Context 是什么?
开发语言·后端·golang·go·语言
茉莉玫瑰花茶8 小时前
GO [ 数据格式 ]
服务器·网络·算法·golang
土豆.exe9 小时前
chunked 编码的行尾:Go、h11 与 Tomcat 各错在哪一处
开发语言·网络安全·golang·tomcat
茉莉玫瑰花茶1 天前
GO [ 标准库 ]
开发语言·后端·golang
紫洋葱hh2 天前
Go 入门基础:类型、变量与运算符
开发语言·后端·ai·golang
codeejun2 天前
每日一Go·MySQL-7、MySQL 核心原理全景图谱
开发语言·mysql·golang
acd120092 天前
Go 里 err 被不经意覆盖的几个现场
开发语言·后端·golang
倔强的小石头_3 天前
从Go+SQLite编译到浏览器开局:landlord部署、AI对局与固定地址实战
人工智能·golang·sqlite
tachibana23 天前
Go 语言的 Map 是否是并发安全的?
开发语言·数据结构·后端·golang·go·语言
后除3 天前
Go 实战: 使用 Wails v2.15 构建轻量级的桌面应用 - 仿微信登录界面
开发语言·微信·golang