如何在Windows子系统WSL中安装Golang_Golang WSL开发环境搭建

11次阅读

WSL中安装go应直接使用官方二进制包解压至/usr/local,配置GOROOT=/usr/local/go和PATH,再验证版本与环境;避免混用GOPATH与GOROOT,现代Go默认启用module模式。

如何在Windows子系统WSL中安装Golang_Golang WSL开发环境搭建

WSL 中安装 Go 不需要额外兼容层,直接用官方二进制包最稳妥——既避开包管理器(如 apt)提供的老旧版本,也避免源码编译带来的依赖和权限问题。

下载并解压 Go 二进制包到 /usr/local

WSL 的 linux 发行版(如 ubuntu)默认不带 Go,但 /usr/local 是标准的第三方软件安装路径,且对所有用户可读、对 root 可写,适合放 Go 安装目录。

  • wget 下载最新稳定版(例如 go1.22.5):
    wget https://go.dev/dl/go1.22.5.linux-amd64.tar.gz
  • 解压覆盖到 /usr/local
    sudo tar -C /usr/local -xzf go1.22.5.linux-amd64.tar.gz
  • 确认结果:ls /usr/local/go 应看到 bin/src/ 等子目录

配置 GOROOTPATH 到用户 Shell

不设 GOROOT 会导致 go env 显示空值,部分 ide(如 VS Code 的 Go 扩展)或构建脚本会报错;而只改 PATH 不设 GOROOT 是常见疏漏。

  • 编辑 ~/.bashrc~/.zshrc(取决于你用的 shell):
    echo 'export GOROOT=/usr/local/go' >> ~/.bashrc echo 'export PATH=$GOROOT/bin:$PATH' >> ~/.bashrc source ~/.bashrc
  • 验证:go version 应输出类似 go version go1.22.5 linux/amd64go env GOROOT 应返回 /usr/local/go
  • 注意:不要把 GOROOT 指向 ~/go 或其他用户目录——那是 GOBIN GOPATH 的位置,不是安装根目录

初始化 go mod 项目并测试跨平台编译能力

WSL 的 Go 默认支持交叉编译(如生成 windows 可执行文件),但需注意 CGO 和系统库限制。首次运行 go mod init 能快速暴露环境是否就绪。

立即学习go语言免费学习笔记(深入)”;

  • 新建测试目录:
    mkdir ~/hello && cd ~/hello
  • 初始化模块:
    go mod init hello
  • 写一个简单 main.go
    package main 

    import "fmt"

    func main() { fmt.Println("Hello from WSL!") }

  • 运行并尝试交叉编译:
    go run main.go go build -o hello.exe -ldflags="-H windowsgui" .  # 生成 Windows GUI 可执行文件
  • 关键点:go build 生成的 .exe 文件在 WSL 中不可直接运行,但可复制到 Windows 目录(如 /mnt/c/tmp)后在资源管理器双击启动

真正容易卡住的地方是 GOPATHGOROOT 混用——现代 Go(1.16+)已默认启用 module 模式,GOPATH 仅用于存放 go install 的二进制工具(如 gopls),而 GOROOT 必须严格指向 /usr/local/go。一旦设错,go listgo test 等命令可能静默失败或加载错误标准库。

text=ZqhQzanResources