go第一个工程安装过程与问题汇总

安装步骤

  1. 首先安装go编译器,官网地址https://golang.google.cn/dl/,根据自己的系统和硬件平台下载对应的安装版本,以windows为例,应当下载go1.xx.x.windows-amd64.msi,下载后双击安装即可,安装成功后,打开Power Shell输入go version,能够查询到go的版本号则说明没安装成功。
  2. 首先安装vscode,这个网上有很多教程,这里不在赘述
  3. 由于vscode是一个编辑器,默认不包含编译工具链,故这里需要手动安装插件必须安装的插件如下所示:

Go(官方插件) → golang.go

GitLens → eamodio.gitlens

Error Lens → usernamehw.errorlens

REST Client → humao.rest-client

Docker → ms-azuretools.vscode-docker

3.完成上述步骤后,还需要安装go的工具链,安装方法如下所示:

Ctrl + Shift + P → Go: Install/Update Tools → 全选安装

为什么需要安装工具链呢?请参考第二章节的内容。

4.至于创建go工程,我不太擅长,因为vscode的创建工程需要写配置文件(json格式),内部包含很多关键字,我是用claude code帮我生成的。

问题汇总

1.上一章节步骤3中的,默认的安装的地址是github,如果提示无法连接或者连接超时,Go 工具链需要访问 golang.org,被墙了,设置代理即可解决,思路是设置GOPROXY国内镜像如下所示:

设置国内镜像代理

go env -w GOPROXY=https://goproxy.cn,direct

关闭私有包校验(避免 sum 检查失败)

go env -w GONOSUMDB=*

验证设置成功

go env GOPROXY

输出:https://goproxy.cn,direct ✅

上面的命令在vscode的终端中执行即可,打开终端的方式为ctrl+`,输入后再次执行步骤3,正常情况可以执行成功;如果还是提示同样的错误,那么重启下vscode试试。

2.vscode默认情况下是没有运行按钮的(python除外,python的插件内置了运行按钮),go插件并没有内置运行按钮,如果想要在编辑页面的右上角出现三角形的运行按钮(▶),需要安装Code Runner

3.vscode的go插件、Go: Install/Update Tools安装的工具链的关系如下所示:

Go 插件(golang.go):

→ VSCode 里的"控制中心"

→ 负责 UI 交互、功能入口、调用工具

Go 工具链(Install/Update Tools):

→ 实际干活的"底层程序"

→ 被插件调用,完成具体任务

4.go编译器与vscode中的执行Install/Update Tools安装的工具链的关系,go编译器包含了一些基础的命令,比如编译、运行,模块管理,格式化等。执行Install/Update Tools安装的工具链是专门为编辑器体验开发的第三方工具,包含gopls / dlv / staticcheck等工具,需要额外执行 Install/Update Tools 安装。go编译器包含的命令如下所示:

go version # 查看版本

go run # 直接运行源码

go build # 编译生成可执行文件

go test # 运行测试

go mod # 模块管理

go get # 下载依赖

go fmt # 格式化代码

go vet # 基础代码检查

go doc # 查看文档

go env # 查看环境变量

go install # 编译并安装程序

对这二者进行对比关系:

维度 Go 编译器自带工具 VSCode 工具链
代表命令 go build go run go test gopls dlv staticcheck
何时可用 装完编译器立即可用 需额外执行 Install/Update Tools
安装位置 /usr/local/go/bin/ $GOPATH/bin/
主要用途 编译运行程序 提升编辑器体验
没有它 代码无法运行 代码照样运行,编辑体验差
谁开发的 Go 官方团队 各开源社区(部分官方)
相关推荐
_孤傲_5 分钟前
快速掌握 MySQL 语法
数据库·后端·mysql
Wang's Blog21 分钟前
Java 项目实战: 交友项目 - 圈子功能实现:总结
java·开发语言·交友
下一站春风里1 小时前
位运算完整学习笔记:按位与(&)+ 异或(^)
开发语言·c++·算法
IT_陈寒2 小时前
Java静态变量初始化坑得我头皮发麻
前端·人工智能·后端
天外飞雨道沧桑2 小时前
我在浏览器里练了一个 792 参数的大模型,它学会了补全 JavaScript
开发语言·javascript·ai·ecmascript·ai编程
hhhjhl2 小时前
Yup 跨端三方库仓颉适配全流程
java·开发语言
步行cgn2 小时前
Thymeleaf 编辑表单详解:从字段回填到模拟 PUT 请求
后端
运维行者_2 小时前
网络监控工具怎么选?从设备监控到智能运维的能力清单
运维·服务器·开发语言·网络·人工智能·支持向量机·php
“AI国潮设计-小江”3 小时前
【AIGC实战】Python+SDXL打造“潮汕英歌舞IP”万能立牌插件,批量生成“发财元宝蛋糕”视觉营销方案(附源码)
开发语言·人工智能·python·prompt·aigc
Song_RsHt3 小时前
Redis 与微服务,什么场景下无可替代
java·redis·后端·学习·微服务