- 首页 >
- 问答 >
-
编程语言 >
- Ubuntu上Golang编译环境变量怎么设置
Ubuntu上Golang编译环境变量怎么设置
小樊
37
2026-01-03 02:34:40
Ubuntu 上 Golang 编译环境变量设置
一 核心变量与推荐值
- GOROOT:Go 安装根目录。使用官方二进制发行版解压到 /usr/local/go 时通常可省略该变量(Go 默认会识别);若安装到其他路径(如 /opt/go),需显式设置。
- GOPATH:Go 工作区目录,用于存放项目与依赖。推荐设为 $HOME/go,并确保该目录存在。
- GOBIN:可执行文件输出目录,推荐设为 $GOPATH/bin,并加入 PATH,以便直接运行 go install 安装的程序。
- GO111MODULE:是否启用模块模式。Go 1.11+ 建议使用模块,推荐设置 on(或在项目内使用 go.mod 自动启用)。
- 注意:不要将 GOROOT 与 GOPATH 设为相同路径,否则会导致标准库与依赖解析异常。
二 本机编译的标准配置步骤
- 1)安装或确认 Go 安装路径
- 使用官方包安装到 /usr/local/go:
sudo tar -C /usr/local -xzf go-linux-amd64.tar.gz
- 使用发行版包管理器安装时,Go 可能位于 /usr/lib/go(可用 which go 或 go env GOROOT 确认)。
- 2)配置环境变量(写入当前用户的 shell 配置文件,如 ~/.bashrc 或 ~/.profile)
- 示例(默认安装到 /usr/local/go):
export GOPATH=$HOME/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:/usr/local/go/bin:$GOBIN
export GO111MODULE=on
- 若安装在自定义目录(如 /opt/go),将第一行改为:
export GOROOT=/opt/go
export PATH=$PATH:$GOROOT/bin:$GOBIN
- 3)使配置生效并验证
- source ~/.bashrc 或 source ~/.profile
- go version、go env 检查输出是否正确。
三 交叉编译的临时变量设置
- 交叉编译只需在运行 go build 前临时设置目标系统与架构:
- 编译 Windows 64 位:
GOOS=windows GOARCH=amd64 go build -o app.exe main.go
- 编译 Linux ARM:
GOOS=linux GOARCH=arm go build -o app main.go
- 说明:非交叉编译场景一般不需要设置 GOOS/GOARCH,Go 会自动检测当前 OS/ARCH。
四 常见问题与排查
- 命令找不到:确认 /usr/local/go/bin(或自定义 GOROOT/bin)与 $GOPATH/bin 已加入 PATH;执行 source 使配置生效。
- 标准库或依赖找不到:检查 GOROOT 是否指向正确安装目录,避免与 GOPATH 相同;必要时用 go env 查看实际生效值。
- 模块相关问题:Go 1.11+ 建议使用模块(GO111MODULE=on 或在项目根目录创建 go.mod),可减少 GOPATH 依赖带来的路径问题。