温馨提示×

如何ubuntu编译golang程序

小樊
40
2026-10-13 03:47:46
栏目: 编程语言

在 Ubuntu 上编译 Go(Golang)程序通常分为 安装 Go 环境 和 编译程序 两部分。下面按常见场景给你说明。


一、安装 Go 环境(Ubuntu)

方法 1:使用官方二进制包(推荐)

# 下载最新稳定版(示例为 1.22.0,可自行替换)
wget https://go.dev/dl/go1.22.0.linux-amd64.tar.gz

# 解压到 /usr/local
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.22.0.linux-amd64.tar.gz

配置环境变量(写入 ~/.bashrc 或 ~/.zshrc):

export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go

使配置生效:

source ~/.bashrc

验证:

go version

方法 2:使用 apt(版本可能较旧)

sudo apt update
sudo apt install golang-go
go version

二、编译 Go 程序

1️⃣ 简单编译(当前平台)

假设有 main.go:

go build main.go

会生成可执行文件 main


2️⃣ 指定输出文件名

go build -o myapp main.go

3️⃣ 编译整个模块

go mod init example.com/demo   # 第一次需要
go build

4️⃣ 交叉编译(常见需求)

编译 Linux 64 位

GOOS=linux GOARCH=amd64 go build -o app-linux

编译 Windows

GOOS=windows GOARCH=amd64 go build -o app.exe

编译 macOS

GOOS=darwin GOARCH=arm64 go build -o app-mac

三、常用编译参数

go build -ldflags "-s -w"   # 去掉调试信息,减小体积
go build -race              # 开启竞态检测(调试用)

四、运行编译后的程序

./app-linux

五、常见问题

❓ 找不到 go 命令

确认:

which go

如果为空,说明 PATH 没配置好。

❓ 依赖下载慢

go env -w GOPROXY=https://proxy.golang.com.cn,direct

如果你有 具体项目结构 或 想交叉编译到某个系统,可以贴出来,我可以直接给你命令。

0 踩