【golang学习之旅】使用VScode安装配置Go开发环境

embedded/2025/1/18 17:09:37/
  • 1. 下载并安装Go
    • 1.1 下载地址
    • 1.2 选择版本并下载
    • 1.3 安装目录
    • 1.4 验证是否安装成功
  • 2. 配置环境变量
    • 2.1 配置步骤
    • 2.2 GO部分环境变量说明
  • 3. 下载或更新 Vscode
    • 3.1 下载地址
    • 3.2 安装步骤
  • 4. 为Go开发配置VScode

1. 下载并安装Go

1.1 下载地址

https://studygolang.com/dl

1.2 选择版本并下载

我选择了较新的稳定版本 go1.21.11。并且根据自己的系统选择安装包,我是Windows所以选择下面的安装包进行下载:
在这里插入图片描述

路径选择可以自定义:

在这里插入图片描述

1.3 安装目录

安装好之后安装目录中有如下文件:

在这里插入图片描述

目录

介绍

api

go1.1.txt,go.1.2.txt…go1.12.txt存放go的所有版本(go1.1到go.1.21)的api信息

doc

存放Go语言几乎全部的HTML格式的官方文档和说明,方便开发者在离线时查看

bin

存放go的可执行文件。包括gofmt.exe ,go官方的代码格式化工具,用来统一代码风格;godoc.exe 在不联网的情况下在本地访问go的api;go.exe 编译构建整个go项目,贯穿go项目的声明周期,go env; go build; go mod; go install;等等

lib

一些公共的库。存放各类编辑器或IDE(集成开发环境)软件的插件,辅助它们查看和编写Go代码

pkg

在go install 完成后,用于保存go语言标准库的所有归档文件(比如fmt包被构建安装后,将生成一个fmt.a归档文件),同时也包含了和平台(windows,linux,mac)项目的一些目录,不同的操作系统看到不一样

src

存放go所有标准库,go语言工具,以及涉及到的底层库(C语言)实现的代码

test

存放测试go语言的代码文件

1.4 验证是否安装成功

安装完成后,Win + R 打开输入 cmd 打开命令行窗口,然后输入 go version 可以查看 Go 的版本:

在这里插入图片描述


2. 配置环境变量

2.1 配置步骤

右键此电脑 → 属性 → 高级系统设置 → 环境变量

在这里插入图片描述

新建系统变量

在这里插入图片描述

新建GOROOT变量

在这里插入图片描述

新建GOPATH变量。GOPATH的目录位置可以自己选择

先自己选择一个目录作为GOPATH,然后在目录中创建以下三个目录:

在这里插入图片描述

然后添加GOPATH系统变量

在这里插入图片描述

把用户变量里的 GOPATH 也换成自定义的目录

在这里插入图片描述

然后编辑用户变量里的 Path

在这里插入图片描述

最后可以去看一下系统变量里的 Path(点击 Path然后编辑),一般可以看到 Go 的路径已经配置好了,我们不需要动,这是 Go 在安装时自动配置的。之前用 go version 查看版本号也是因为这里的环境变量,如果以后出现命令未找到等问题,可以回到这里检查。

在这里插入图片描述

在这里插入图片描述

配置环境完变量后,记得点击「确定」再退出。

最后,Win + R,输入 cmd 打开命令行,输入 go env 可以检查一下,主要是看一下GOROOT和GOPATH这两个变量,应该是和我们前面设置的一致:

在这里插入图片描述

2.2 GO部分环境变量说明

go env //打印Go所有默认环境变量
  • GOROOT

    环境变量GOROOT表示Go语言的安装目录

    Windows中,GOROOT的默认值是C:/go,而在Mac OSLinuxGOROOT的默认值是usr/local/go,如果将Go安装在其他目录中,而需要将GOROOT的值修改为对应的目录。一般我们安装好之后Go会自动配置该变量

  • GOPATH

    环境变量GOPATH是Go项目的工作目录,按照Go开发规范,GOPATH目录下的每个工作一般分为三个子目录:src,pkg,bin

    • src目录放的是我们开发的源代码文件,其下面对应的目录称为包
    • pkg存放编译后的包文件
    • bin存放项目源文件
  • GOBIN

    GOBIN用来存放我们的项目代码编译后生成的二进制文件 (可执行文件) 。当我们使用go install命令编译打包我们的项目代码时,它会将编译后生成的二进制文件放入到GOBIN指定的目录下。如果没有指定GOBIN目录,默认是GOPATH/bin

  • GOPROXY

    GOPROXY设置的是,go get 下载依赖时使用的代理地址列表。该环境变量也可以设置多个值,多个值之间使用逗号 或竖杠分隔。当用 go 命令查找依赖模块时,它会按顺序访问 GOPROXY 列表中的每个代理,直到收到成功的响应或出现终端错误

  • GOOS

    GOOS的值是为其编译代码的操作系统。例如:linux、darwin、windows、netbsd、freebsd、openbsd、solaris

  • GOARCH

    GOARCH的值是为其编译代码的CPU架构或处理器。比如amd64、386、arm等

    GOARCH和GOOS是成对出现的,比如,如果是macOS系统,那么它们就有以下几种组合形式:

    在这里插入图片描述

    GOOS和GOARCH这两个环境变量用于交叉编译,也就是在一个平台上可以生成在另一个平台上运行的程序,比如在32位的windows操作系统环境中,生成可以在64位Linux操作系统上运行的二进制程序,通常需要借助第三方的工具才能够实现。但是在GO语言中,只需要设置GOOS和GOARCH这两个环境变量就可以实现


3. 下载或更新 Vscode

3.1 下载地址

https://code.visualstudio.com/Download

3.2 安装步骤

下载 Vscode 安装文件

在这里插入图片描述

下载完成单击安装文件开始进行安装

在这里插入图片描述

自定义安装目录

选择附加任务

在这里插入图片描述

准备安装

在这里插入图片描述

正在安装(几秒钟就安装成功了)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


4. 为Go开发配置VScode

打开终端并执行:

在这里插入图片描述

vscode界面按键盘ctrl+shift+p,输入Go: install/update tools,回车如下图,选择要安装的依赖(这里全选),等待安装完成

在这里插入图片描述

在这里插入图片描述


http://www.ppmy.cn/embedded/154999.html

相关文章

Ubuntu、Windows系统网络设置(ping通内外网)

一、 虚拟机VMware和Ubuntu系统的网络配置说明 1、虚拟机的网络适配器的模式有三种: 桥接模式NAT模式主机模式 2、虚拟机VMware的网卡配置(如何进行配置界面(虚拟机->设置)) 注意: 1、以上桥接模式(ubuntu有独立IP)、NAT模式(没有独立IP)都可以联…

pnpm介绍

pnpm 是一个快速、节省磁盘空间的 JavaScript 包管理工具,它与 npm 和 yarn 类似,但具有一些独特的优势。以下是 pnpm 的一些特点: 1. 高效的磁盘空间管理 pnpm 使用一种去重机制来存储依赖包。它将所有项目共享的依赖包保存在全局存储区&a…

OpenAI Whisper:语音识别技术的革新者—深入架构与参数

当下语音识别技术正以前所未有的速度发展,极大地推动了人机交互的便利性和效率。OpenAI的Whisper系统无疑是这一领域的佼佼者,它凭借其卓越的性能、广泛的适用性和创新的技术架构,正在重新定义语音转文本技术的规则。今天我们一起了解一下Whi…

基于单片机的智能火灾报警系统设计

【文章摘要】火灾报警器是当前社会经济生产生活中较为常用的火灾预警装置,对国民经济及人员生命财产安全起到了重要的保障作用。随着现代科学技术快速发展,智能控制芯片的应用使得火灾报警器反应灵敏度大幅提升,对早期火情发现与控制起到了重要的推动作用。为此,本文以 AT8…

linux nginx 安装后,发现SSL模块未安装,如何处理?

👨‍⚕ 主页: gis分享者 👨‍⚕ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕ 收录于专栏:运维工程师 文章目录 前言SSL模块安装 前言 nginx 安装后,发现SSL模块未安装&…

蓝桥杯刷题第二天——背包问题

题目描述 有N件物品和一个容量是V的背包。每件物品只能使用一次。第i件物品的体积是Vi价值是Wi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。 输出最大价值。 输入格式 第一行两个整数,N,V&am…

effective-Objective-C 第二章阅读笔记

对象,消息,运行期 文章目录 对象,消息,运行期前言理解“属性”这一概念属性修饰符原子性nonatimicatomic 读/写权限内存管理语义方法名 自定义初始化方法小结 在对象内部尽量直接访问实例变量小结 对象等同性特定类的isEqual执行深…

机器学习:监督学习与非监督学习

监督学习是利用带有标签的数据进行训练,模型通过学习输入和输出之间的关系来进行预测。也就是说,数据集中既有输入特征,也有对应的输出标签,模型的目标是找到从输入到输出的映射关系。 而无监督学习则使用没有标签的数据进行训练,模型的任务是发现数据中的内在结构或模式…