温馨提示×

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 自动启用)。
  • 注意:不要将 GOROOTGOPATH 设为相同路径,否则会导致标准库与依赖解析异常。

二 本机编译的标准配置步骤

  • 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 依赖带来的路径问题。

0