Golang 打包

构建/打包

使用 Go 的构建命令:

go build

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

交叉编译

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

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

注意:
在 Windows 命令提示符(CMD)中设置环境变量,应使用 set 命令
在 PowerShell,则应该使用 $env:GOOS$env:GOARCH 变量,例如:

$env:GOOS="linux"
$env:GOARCH="amd64"
go build -o myapp-linux-amd64 myapp.go

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

go tool dist list

我的输出如下:

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
### 如何在 Linux 环境下打包 Golang 应用程序 为了在 Linux 下成功构建并打包 Golang 应用程序,开发者需遵循一系列特定的操作流程。 #### 设置环境变量 确保已配置好必要的环境变量。自 Go 1.13 版本起,Go Modules 成为官方推荐的依赖管理和版本控制工具[^1]。GOPROXY 变量用于指定模块代理服务器地址,这有助于加速下载第三方库的速度以及解决网络访问受限的问题。 #### 编写可执行文件代码 编写完成的应用逻辑应当保存在一个 `.go` 文件内,通常命名为 `main.go` 或者其他有意义的名字。此文件应包含一个名为 `main` 的函数作为程序入口点: ```go package main import "fmt" func main() { fmt.Println("Hello, world!") } ``` #### 构建命令行应用 通过终端进入项目根目录,在该位置运行如下指令来编译适用于 Linux 平台的二进制文件: ```bash GOOS=linux GOARCH=amd64 go build -o myapp . ``` 这里 `-o` 参数指定了输出文件名;而 `GOOS` 和 `GOARCH` 则分别设定了目标操作系统与架构类型。对于大多数现代桌面级和服务器级别的 Linux 发行版而言,默认设置即为 `linux/amd64`。 #### 打包分发 一旦生成了所需的二进制文件,则可以根据实际需求进一步处理这些文件。常见的做法是将其压缩成 tarball 形式以便于传输或部署到生产环境中去: ```bash tar czvf myapp.tar.gz myapp README.md LICENSE.txt ``` 上述命令会创建一个新的 gzip 压缩过的 tar archive (`myapp.tar.gz`) ,其中包含了刚才编译出来的应用程序及其配套文档资料。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值