当前位置: 首页 > 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.lqws.cn/news/561871.html

相关文章:

  • 案例开发 - 日程管理系统 - 第一期
  • Redis 实现分布式锁
  • 【C++进阶】--- 继承
  • 鸿蒙 Grid 与 GridItem 深度解析:二维网格布局解决方案
  • 复杂驱动开发-TLE9471的休眠流程与定时唤醒
  • Python训练营-Day44-预训练模型
  • Java中的异常及异常处理
  • JDK17的GC调优
  • SpringCloud Stream 使用
  • Youtube双塔模型
  • 第27篇:SELinux安全增强机制深度解析与OpenEuler实践指南
  • eTools 开源发布
  • 如何在 Ubuntu 上通过终端或在 VirtualBox 中安装 GCC
  • 佳能Canon PIXMA G1020打印机信息
  • scGPT-spatial 复现
  • KS值:风控模型的“风险照妖镜”
  • Transformer结构--输入编码(BPE,PE)
  • Java面向对象(一)
  • JVM 之双亲委派机制与打破双亲委派
  • 【软考高项论文】论信息系统项目的进度管理
  • 【C++】简单学——类和对象(实现双向循环链表)
  • Python基础(吃洋葱小游戏)
  • Java Optional 详解:优雅处理空指针异常
  • 顺序表应用实践:从通讯录实现到性能优化深度解析
  • 有理函数积分——分式分解时设分解式的规则
  • Fine-Tuning Vision-Language-Action Models:Optimizing Speed and Success论文学习
  • SQL关键字三分钟入门:ROW_NUMBER() —— 窗口函数为每一行编号
  • FreeSWITCH配置文件解析(2) dialplan 拨号计划中xml 的action解析
  • 第一章 从零开始学习大型语言模型-搭建环境
  • 人大金仓数据库jdbc连接jar包kingbase8-8.6.0.jar驱动包最新版下载(不需要积分)