当前位置: 首页 > news >正文

【go】初学者入门环境配置,GOPATH,GOROOT,GOCACHE,以及GoLand使用配置注意

一、环境变量配置步骤

1. 打开环境变量设置

  • Win + R 后输入 sysdm.cpl → 点击 确定
  • 在弹出窗口中点击 高级环境变量

2. 配置 GOROOT(Go语言安装根目录)

  • 作用:告诉系统Go语言的安装位置(编译器、标准库等核心文件所在路径)。
  • 配置步骤
    1. 系统变量 区域点击 新建
    2. 变量名GOROOT
    3. 变量值D:\goSDK\go1.23.1(你的Go安装目录,这里添加一个上级目录,方便多版本管理)
    4. 点击 确定

3. 配置 GOPATH(工作目录)

  • 作用:存放你的Go项目代码src依赖包pkg编译结果bin
  • 配置步骤
    1. 系统变量 区域点击 新建
    2. 变量名GOPATH
    3. 变量值D:\code\GoLand(你的工作目录,建议设为项目存放位置)
    4. 点击 确定

这里主要是bin目录和pkg目录的存放位置,不能动,必须在GOPATH下;通常,我们的项目代码src可以放在这里,自己在GOPATH下建一个src,里面就是项目目录,当然,src也可以不放在GOPATH下,任意位置都可以

  • 目录结构:在 GOPATH(即 D:\code\GoLand)下创建一个子目录src,另外俩会自己生成:
    D:\code\GoLand\
    ├── src\       # 存放源代码(如项目文件夹)
    ├── pkg\       # 存放编译后的包文件(自动生成)
    └── bin\       # 存放编译后的可执行文件(自动生成)
    

4. 配置 GOCACHE(编译缓存目录)

  • 作用:存放编译过程中的临时文件,加速后续编译(类似浏览器缓存)。
  • 配置步骤
    1. 系统变量 区域点击 新建
    2. 变量名GOCACHE
    3. 变量值E:\GOCACHE\go-build(非系统盘的目录,节省C盘空间)
    4. 点击 确定

GOCACHE可以不配置,默认会存在C:\Users\用户名\AppData\Local\go-build这里,我的c盘紧缺,用到后面会占很多地方,所以配置到E盘

5. 更新 PATH 变量(重要!)

  • 作用:让系统能够找到Go命令(如go buildgo run)。
  • 配置步骤
    1. 系统变量 列表中找到 Path 变量,点击 编辑
    2. 点击 新建,添加以下两个路径(分别对应Go命令和Go项目的可执行文件):
      • %GOROOT%\bin(Go命令所在目录)
      • %GOPATH%\bin(项目编译后的可执行文件所在目录)
    3. 一路点击 确定 关闭所有弹窗
      在这里插入图片描述

二、验证配置是否成功

  1. 打开 命令提示符(CMD)PowerShell
  2. 输入以下命令检查环境变量:
    go env GOROOT     # 应输出:D:\goSDK\go1.23.1
    go env GOPATH     # 应输出:D:\code\GoLand
    go env GOCACHE    # 应输出:E:\GOCACHE\go-build
    
  3. 输入 go version,若显示版本信息(如 go version go1.20 windows/amd64),则配置成功。

三、三个变量的通俗解释

变量作用类比(初学者理解)
GOROOTGo语言的“老家”,存放官方提供的编译器、标准库(如fmt包)等核心文件。相当于电脑上安装的“Office软件目录”。
GOPATH你的“工作区”,存放自己写的代码和下载的第三方库(如GitHub上的开源包)。相当于“我的文档”里专门放Go项目的文件夹。
GOCACHE编译过程中的“缓存垃圾站”,存临时文件(如已编译的中间结果),可随时清理。相当于浏览器缓存(如视频缓存文件)。

GoLand配置注意

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


推荐的go多版本切换,避免改GOROOT

https://github.com/voidint/g/releases/tag/v1.7.0

配置参考:Golang 多版本管理(g 工具)


https://github.com/0voice

http://www.lryc.cn/news/576597.html

相关文章:

  • LNA设计
  • 【安卓Sensor框架-1】SensorService 的启动流程
  • iOS 使用 SceneKit 实现全景图
  • MCPA2APPT:基于 A2A+MCP+ADK 的多智能体流式并发高质量 PPT 智能生成系统
  • 微处理原理与应用篇---STM32寄存器控制GPIO
  • Unity2D 街机风太空射击游戏 学习记录 #16 道具父类提取 旋涡道具
  • FPGA内部资源介绍
  • Python爬虫实战:研究sanitize库相关技术
  • 笔记07:网表的输出与导入
  • SQL关键字三分钟入门:RANK() —— 窗口函数
  • Java AI 新纪元:Spring AI 与 Spring AI Alibaba 的崛起
  • JavaScript正则表达式之正向先行断言(Positive Lookahead)深度解析
  • 第8章-财务数据
  • 某音Web端消息体ProtoBuf结构解析
  • TCP 在高速网络下的大数据量传输优化:拥塞控制、效率保障与协议演进​
  • Linux更改国内镜像源
  • InnoDB的undo日志涉及的页结构
  • C语言二级指针与多级指针
  • 国内公司把数据湖做成了数据库
  • uni-app项目实战笔记27--uniapp搜索页面的实现
  • 手势-handpose的pipeline介绍
  • nt!IoSynchronousPageWrite函数分析之atapi!IdeReadWrite----非常重要
  • 视频序列中的帧间匹配技术 FrameMatcher 详解
  • 智能制造——56页2025 智慧工厂解决方案【附全文阅读】
  • zookeeper Curator(3):Watch事件监听
  • 从单体架构到微服务:微服务架构演进与实践
  • 从台式电脑硬件架构看前后端分离开发模式
  • Spring Boot 3 多数据源改造全流程:Druid、HikariCP 与 dynamic-datasource 实战总结
  • 内网横向-工作流
  • 典型工程应用三