在 Ubuntu 系统下打包 Go 语言程序,最核心的工具就是 go build。这个命令能直接编译生成可执行文件,与 Go 编译器、依赖库完全解耦,生成的文件拿到任何兼容的 Linux 机器上都能直接运行,非常便捷高效。

实际的打包流程非常简单:
- 打开终端。
- 切换到 Go 源码所在的目录。
- 执行
go build命令。例如,如果源码文件名为main.go,则输入:
go build main.go
当前目录下就会生成一个可执行文件,默认名称为 main(在 Windows 下则为 main.exe)。
如果需要为不同操作系统或架构进行交叉编译,只需设置 GOOS 和 GOARCH 环境变量即可。例如,为 Linux 64 位系统编译:
GOOS=linux GOARCH=amd64 go build main.go
为 Windows 64 位系统编译:
GOOS=windows GOARCH=amd64 go build main.go
为 macOS 编译:
GOOS=darwin GOARCH=amd64 go build main.go
如果希望一次性构建多个平台,gox 是一个非常实用的工具。首先安装它:
go get github.com/mitchellh/gox
然后使用一条命令指定目标平台:
gox -osarch="linux/amd64 windows/amd64 darwin/amd64" main.go
该工具会为每个指定的平台生成独立的目录,并在其中存放对应的可执行文件。
还有一个重要细节需要留意:如果程序依赖外部资源文件(如配置文件、模板、图片等),仅靠 go build 无法自动将这些资源打包进去。要么将资源文件放在程序目录中,通过相对路径引用;要么编写一个脚本,在生成可执行文件的同时将资源复制到其旁边。总之,分发时务必确保这些外部文件一并提供。
