发布于2026-07-16 阅读(0)
扫一扫,手机访问
在Ubuntu下用Go打包跨平台应用,其实比想象中简单得多。只要掌握了交叉编译的几个关键变量,你就能轻松为Linux、Windows甚至macOS生成可执行文件。下面直接进入正题。

第一步当然是把Go装好。去官网下载对应Ubuntu的安装包,按照指引完成安装,然后在终端里验证一下 go version 是否正常输出。这一步是基础,没什么好说的。
第二步,写你的Go代码。注意代码本身要尽量跨平台兼容,比如文件路径用 path/filepath 而不是硬编码斜杠,系统调用时用 runtime.GOOS 判断。这些细节决定了后续打包能否顺利。
第三步,配置交叉编译环境。这里不需要复杂的工具链,关键就是设置两个环境变量:GOOS(目标操作系统)和 GOARCH(目标架构)。为了方便,可以在项目目录下写一个简单的脚本,比如命名为 cross-build.sh:
#!/bin/bash
GOOS=$1
GOARCH=$2
if [ "$GOOS" == "" ]; then
echo "请指定目标操作系统 (例如: linux, windows, darwin)"
exit 1
fi
if [ "$GOARCH" == "" ]; then
echo "请指定目标架构 (例如: amd64, 386, arm)"
exit 1
fi
export GOOS GOARCH
保存后记得 chmod +x cross-build.sh 并 source cross-build.sh 激活。当然,你也可以直接在终端里手动 export,脚本只是让重复操作更省事。
第四步,正式打包。以最常见的三种目标为例:
GOOS=linux GOARCH=amd64 go build -o your_app_linux_amd64GOOS=windows GOARCH=amd64 go build -o your_app_windows_amd64.exeGOOS=darwin GOARCH=amd64 go build -o your_app_darwin_amd64注意Windows可执行文件要加上 .exe 后缀,其他系统不强制。输出文件名最好带上系统和架构信息,方便后续分发。
第五步,分发。生成的二进制文件是静态编译的,目标用户无需安装Go运行时,直接运行即可。有一点需要特别提醒:如果目标系统依赖C库(比如 net/http 用到了cgo),你可能需要启用静态链接。方法是在 go build 命令后加上 -ldflags '-extldflags "-static"'。但这会导致二进制文件变大,且可能在某些环境遇到兼容性问题,所以除非必要,建议先尝试默认的纯Go编译。
整个流程走下来,你其实只需要记住两个变量和一条命令。多练几次,就能像切菜一样顺手。遇到跨平台兼容的坑,多查文档,多试不同架构,经验就是这么攒出来的。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8