【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.pswp.cn/bicheng/86710.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/86710.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

gantt-task-react的改造使用

gantt-task-react的镜像地址 例子 改造1:切断父子关联关系,父为project组件,子为task组件, 原来的功能是task组件拖动会影响到父组件,现在切断两者关联关系,数据都用task组件, 给task组件重…

kotlin 协程(Coroutine)

Coroutine(协程)的转换原理: 在 kotlin 中,Coroution 是一种轻量级的线程管理方式,其转换原理涉及 状态机生成、挂起函数转换和调度器机制。 一、协程的本质:状态机 kotlin 协程通过 编译器生成状态机 实…

线性变换之维数公式(秩-零化度定理)

秩数-零化度定理(rank-nullity theorem) 目录 1. (映射)零空间(线性映射或变换的核)(null-space或nullspace) 2. 跨度(或开度)(span) 3. (线性映射的)零化度(nullity) 4. 线性变换的维数公式(秩数-零化度定理)(rank-nullity theorem) 5. 函数的上域(codomain) 1…

Spring Cloud Gateway 实战:网关配置与 Sentinel 限流详解

Spring Cloud Gateway 实战:网关配置与 Sentinel 限流详解 在微服务架构中,网关扮演着统一入口、负载均衡、安全认证、限流等多种角色。Spring Cloud Gateway 是 Spring Cloud 官方推出的新一代网关组件,相比于第一代 Netflix Zuul&#xff…

JAVA-常用API(二)

目录 1.Arrays 1.1认识Arrays 1.2Arrays的排序 2.JDK8的新特性:Lambda表达式 2.1认识Lambda表达式 2.2用Lambda表达式简化代码、省略规则 3.JDK8的新特性:方法引用(进一步简化Lambda表达式) 3.1 静态方法引用 3.2 实例方法引…

深入理解PHP的命名空间

命名空间是PHP 5.3引入的一个特性,它的主要目的是解决在大型应用程序中可能出现的名称冲突问题。在没有命名空间的情况下,如果两个不同的库或模块定义了相同名称的函数或类,那么在使用这些库或模块的时候就会引发冲突。为了解决这个问题&…

SwiftUI学习笔记day5:Lecture 5 Stanford CS193p 2023

SwiftUI学习笔记day5:Lecture 5 Stanford CS193p 2023 课程链接:Lecture 5 Stanford CS193p 2023代码仓库:iOS课程大纲: Enum 定义:enum MyType { … }关联值:case drink(name: String, oz: Int)匹配:switc…

idea 报错:java: 非法字符: ‘\ufeff‘

idea 报错:java: 非法字符: ‘\ufeff‘ 解决方案:

数据结构与算法之美:图

Hello大家好&#xff01;很高兴我们又见面啦&#xff01;给生活添点passion&#xff0c;开始今天的编程之路&#xff01; 我的博客&#xff1a;<但凡. 我的专栏&#xff1a;《编程之路》、《数据结构与算法之美》、《题海拾贝》、《C修炼之路》 欢迎点赞&#xff0c;关注&am…

SpringBoot -- 热部署

9.SpringBoot 热部署&#xff08;自动重启&#xff09; 在实际开发过程中&#xff0c;每次修改代码就得将项目重启&#xff0c;重新部署&#xff0c;对于一些大型应用来说&#xff0c;重启时间需要花费大量的时间成本。对于一个后端开发者来说&#xff0c;重启过程确实很难受啊…

HarmonyOS 5浏览器引擎对WebGL 2.0的支持如何?

以下是HarmonyOS 5浏览器引擎对‌WebGL 2.0‌支持的详细技术分析&#xff1a; 一、核心支持能力 ‌系统能力声明 HarmonyOS 5 浏览器引擎通过 SystemCapability.Graphic.Graphic2D.WebGL2 提供对 WebGL 2.0 的底层支持 支持的关键特性包括&#xff1a; OpenGL ES 3.0 特性…

Class1线性回归

Class1线性回归 买房预测 要根据历史数据来预测一套房子的价格。你发现影响房价的因素有很多&#xff0c;于是你决定使用线性回归模型来预测房价。 影响房价的因素如下&#xff1a; 房屋面积&#xff08;平方米&#xff09; 房龄&#xff08;年&#xff09; 离地铁站的距离&a…

Vue.js 3:重新定义前端开发的进化之路

Vue.js 3&#xff1a;重新定义前端开发的进化之路 引言&#xff1a;一场酝酿已久的革新 2020年9月18日&#xff0c;Vue.js团队以代号"One Piece"正式发布3.0版本&#xff0c;这不仅是框架发展史上的重要里程碑&#xff0c;更是前端工程化领域的一次革命性突破。历经…

Unity性能优化-渲染模块(1)-CPU侧(1)-优化方向

Unity 中渲染方面的优化大致可以划分为以下几块核心内容&#xff1a; CPU 优化 (减少 Draw Calls 和 CPU 瓶颈) GPU 优化 (减少像素着色和 GPU 瓶颈) 内存和显存优化 (Resource Management) 光照优化 (Lighting & Global Illumination) 这四个方面是相互关联的。一个方…

AI矢量图与视频无痕修复:用Illustrator与After Effects解锁创作新维度

最近因一个项目&#xff0c;有机会深度体验了奥地利Blueskyy艺术学院授权的Adobe教育版全家桶&#xff0c;过程中发现了不少令人惊喜的“黑科技”&#xff0c;很想和大家分享这份发掘宝藏的喜悦。一句话总结这次体验&#xff1a;慷慨且稳定。比如&#xff0c;它每周提供高达150…

Maven Javadoc 插件使用详解

Maven Javadoc 插件使用详解 maven-javadoc-plugin 是 Maven 项目中用于生成 Java API 文档的标准插件&#xff0c;它封装了 JDK 的 javadoc 工具&#xff0c;提供了更便捷的配置和集成方式。 一、基本使用 1. 快速生成 Javadoc 在项目根目录执行以下命令&#xff1a; bas…

Apache Kafka 面试应答指南

Apache Kafka 核心知识详解与面试应答指南 一、Apache Kafka 概述 Apache Kafka 作为一款分布式流处理框架,在实时构建流处理应用领域发挥着关键作用。其最广为人知的核心功能,便是作为企业级消息引擎被众多企业采用。 二、消费者组 (一)定义与原理 消费者组是 Kafka 独…

在NVIDIA Jetson和RTX上运行Google DeepMind的Gemma 3N:多模态AI的边缘计算革命

在NVIDIA Jetson和RTX上运行Google DeepMind的Gemma 3N&#xff1a;多模态AI的边缘计算革命 文章目录 在NVIDIA Jetson和RTX上运行Google DeepMind的Gemma 3N&#xff1a;多模态AI的边缘计算革命引言&#xff1a;多模态AI进入边缘计算时代文章结构概览 第一章&#xff1a;Gemma…

iOS打包流程中的安全处理实践:集成IPA混淆保护的自动化方案

随着iOS应用上线节奏的加快&#xff0c;如何在持续集成&#xff08;CI&#xff09;或交付流程中嵌入安全处理手段&#xff0c;成为开发团队构建自动化发布链路时不可忽视的一环。特别是在App已经完成构建打包&#xff0c;准备分发前这一阶段&#xff0c;对IPA进行结构层面的加固…

FFmpeg进行简单的视频编辑与代码写法实例

使用 FFmpeg 进行简单的视频编辑非常强大。它是一个命令行工具&#xff0c;虽然一开始可能看起来有点复杂&#xff0c;但掌握了基本命令后会非常有用。 以下是一些常见的简单视频编辑操作及其 FFmpeg 命令&#xff1a; 1. 剪切视频 如果你想从一个视频中剪切出一段&#xff0…