如何使用Golang在WSL中开发_Golang WSL环境搭建方法
发布时间 - 2026-01-25 00:00:00 点击率:次WSL中Go开发应使用官方二进制安装并显式配置GOROOT、GOBIN和GOPATH,全部操作须在WSL原生路径(如~/)进行,VS Code需配置为登录交互式shell(-i -l)以正确加载环境。
WSL 中安装 Go 不要用 apt 直接装
WSL 默认源里的 golang 包版本通常严重滞后(比如 Ubuntu 22.04 自带 go 1.18),且不包含 GOROOT 和 GOBIN 的合理默

go install 失败或 go mod 行为异常。官方二进制包才是唯一推荐方式。
- 去 https://www./link/81836b7cd16991abb7febfd7832927fd 下载最新
go1.xx.linux-amd64.tar.gz(WSL2 一般为 x86_64) -
解压到
/usr/local:sudo rm -rf /usr/local/go sudo tar -C /usr/local -xzf go1.22.5.linux-amd64.tar.gz
- 把
/usr/local/go/bin加入$PATH(写入~/.bashrc或~/.zshrc):export PATH=$PATH:/usr/local/go/bin
- 执行
source ~/.bashrc,验证:go version应输出类似go version go1.22.5 linux/amd64
GOBIN 和 GOPATH 要显式配置才稳定
WSL 文件系统跨 Windows/Linux 边界时,若依赖默认路径(如 $HOME/go),可能因权限、大小写敏感或缓存问题引发 go install 写入失败或 go mod download 卡住。建议统一指向 WSL 原生路径并显式声明。
- 创建专用目录:
mkdir -p ~/go-workspace/bin
- 在 shell 配置中添加:
export GOPATH=$HOME/go-workspace export GOBIN=$HOME/go-workspace/bin
- 确保
GOBIN已在PATH前置:export PATH=$GOBIN:$PATH
- 验证:
go env GOPATH和go env GOBIN应返回你设置的路径
VS Code 连接 WSL 后仍提示 “go command not found”
这是 VS Code Remote-WSL 插件加载 shell 环境不完整导致的典型问题——它默认不读取 ~/.bashrc 中的 export,所以 PATH 里没有 go。
- 打开 VS Code 设置(
Ctrl+,),搜索remote.WSL.defaultLinuxShellArgs - 将值设为:
["-i", "-l"]
(即以登录交互式 shell 启动) - 重启 VS Code 窗口(不是仅重载窗口),再打开一个 .go 文件,状态栏应显示 Go 版本
- 如果仍不行,检查 VS Code 的集成终端是否也用了
-i -l:设置中搜terminal.integrated.profiles.linux,确认默认 profile 含"args": ["-i", "-l"]
Windows 文件系统(/mnt/c/)里不能直接 go run
WSL 访问 /mnt/c/ 下的 Go 项目时,go build 可能报错 exec: "gcc": executable file not found in $PATH,或 go mod 拉包极慢甚至超时。根本原因是 Windows NTFS 文件系统不支持 Unix 权限和符号链接,且 I/O 层有额外转换开销。
- 所有开发工作必须在 WSL 原生文件系统进行(即
~、/home/xxx、/tmp等路径) - 不要用
code /mnt/c/Users/xxx/project直接打开 Windows 路径;改用cd ~ && mkdir project && code ./project - 若需从 Windows 同步代码,用
rsync或 Git,而非直接编辑/mnt/c/下文件 - WSL2 的内存和磁盘性能对原生路径很友好,没必要妥协
GOBIN、所有操作留在 ~/ 下、VS Code 启动带 -i -l,基本不会遇到环境级阻塞。
# linux
# git
# go
# windows
# golang
# ubuntu
# unix
# amd
# 解压
# win
# vs code
# https
# 文件系统
# 加载
# 不要用
# 这是
# 设为
# 不上
# 用了
# 已在
# 不支持
# 自带
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何获取上海专业网站定制建站电话?
iOS中将个别页面强制横屏其他页面竖屏
Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】
教学论文网站制作软件有哪些,写论文用什么软件
?
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
佛山企业网站制作公司有哪些,沟通100网上服务官网?
长沙企业网站制作哪家好,长沙水业集团官方网站?
如何用y主机助手快速搭建网站?
Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程
悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
Laravel如何优化应用性能?(缓存和优化命令)
Laravel怎么连接多个数据库_Laravel多数据库连接配置
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
制作公司内部网站有哪些,内网如何建网站?
如何快速选择适合个人网站的云服务器配置?
HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】
微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】
Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转
UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】
LinuxCD持续部署教程_自动发布与回滚机制
如何在 Pandas 中基于一列条件计算另一列的分组均值
Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用
Laravel如何使用Gate和Policy进行授权?(权限控制)
标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南
5种Android数据存储方式汇总
如何用IIS7快速搭建并优化网站站点?
JavaScript如何实现音频处理_Web Audio API如何工作?
javascript中的try catch异常捕获机制用法分析
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
Python3.6正式版新特性预览
如何在Windows服务器上快速搭建网站?
教你用AI润色文章,让你的文字表达更专业
焦点电影公司作品,电影焦点结局是什么?
Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作
Laravel如何配置任务调度?(Cron Job示例)
Laravel如何配置和使用缓存?(Redis代码示例)
音乐网站服务器如何优化API响应速度?
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
高端云建站费用究竟需要多少预算?
深圳网站制作平台,深圳市做网站好的公司有哪些?
Python自然语言搜索引擎项目教程_倒排索引查询优化案例
为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】
Laravel如何使用Telescope进行调试?(安装和使用教程)
Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】
Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试
Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复
如何基于PHP生成高效IDC网络公司建站源码?
bing浏览器学术搜索入口_bing学术文献检索地址
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?

