前言

对于我们Windows用户而言,Go提供两种环境安装方式(源码安装除外):

1、MSI安装(MSI文件是Windows Installer的数据包它实际上是一个数据库,包含安装一种产品所需要的信息和在很多安装情形下安装(和卸载)程序所需的指令和数据。):程序在安装过程中会自动配置Go所需要的环境变量。

2、ZIP安装:需要你手动设置一些环境变量。

Go重要环境变量介绍

Go开发环境依赖于一些操作系统环境变量,你最好在安装Go之前就设置好这些系统环境变量配置。如果你使用的是Windows的话,你完全不用进行手动设置,Go将被默认安装在目录c:/go(当然你也可以修改GOROOT的安装位置如:D:/Go)下。这里列举几个最为重要的环境变量:

  • GOROOT 是Go在你的电脑上的安装位置,它的值一般都是 c:/go,当然,你也可以安装在别的地方。
  • GOPROXY 是控制Go Module下载的来源,有助于确保构建的确定性和安全性(代理的配置可以在goproxy.io这个网站上找到说明)。
  • GOARCH 表示目标机器的处理器架构,它的值可以是 386、amd64 或 arm。
  • GOOS 表示目标机器的操作系统,它的值可以是 darwin、freebsd、linux 或 windows。
  • GOBIN 表示编译器和链接器的安装位置,默认是 GOROOT/bin,如果你使用的是Go 1.0.3及以后的版本,一般情况下你可以将它的值设置为空,Go 将会使用前面提到的默认值。
  • GOPATH Go开发包在安装完成后会为设置一个默认目录,并且在Go1.14及之后的版本中启用了Go Module模式之后,不一定非要将代码写到GOPATH目录下,所以也就不需要我们再自己配置GOPATH了,使用默认的即可。

Go环境下载

Go官网下载地址(需要FQ):

https://golang.org/dl/

Go官方镜像站(国内用户推荐):

https://golang.google.cn/dl/

Go语言中文网下载(国内用户推荐):

https://studygolang.com/dl

选择我们对应系统的安装包下载即可:

Go1.16.5安装图解

Go安装目录清单

打开刚才设置的安装地址:D:\GoGOROOT

Go安装目录(GOROOT)的文件夹结构简单介绍如下所示:

  • /api:每个版本api变更差异
  • /bin:go源码包编译出的编译器(go)、文档工具(godoc)、格式化工具(gofmt)等
  • /doc:英文版的Go文档
  • /lib:包含项目所引用、依赖的一些库文件
  • /misc:包含与支持 Go 编辑器有关的配置文件以及 cgo 的示例,杂项用途的文件,例如 Android 平台的编译、git 的提交钩子等
  • /pkg:包含Windows 平台编译好的中间文件
  • /src:包含源代码构建脚本和标准库的包的完整源代码
  • /test:测试用例存放处

验证是否安装配置成功:

win+r: cmd:

go version

或者:

go help

查看系统中配置的Go环境变量

命令:go env

GOPROXY(重要Go默认下载依赖库代理修改)

关于GOPROXY

由于国内的网络环境问题,我们可以通过配置GOPROXY避免DNS污染导致的模块拉取缓慢或失败的问题,加速你的构建。

查看本机环境默认GoPROXY配置,并修改为国内可访问

注意:在Go1.14版本之后,都推荐使用go mod模式来管理依赖环境了,也不再强制我们把代码必须写在GOPATH下面的src目录了,你可以在你电脑的任意位置编写Go代码。(网上有些教程适用于1.11版本之前。)

由Go环境变量图可知,本机的默认GoPROXY配置是:GOPROXY=https://proxy.golang.org,direct,由于国内访问不到https://proxy.golang.org,所以我们需要换一个PROXY,这里推荐使用https://goproxy.iohttps://goproxy.cn

执行下面的命令修改GOPROXY:

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

go run命令编译并运行:

首先创建helloWorld.go文件:

填写以下代码:

package main //定义一个包,声明包名为main,表明当前是一个可执行程序(Go通过包来管理明明空间)

import "fmt" //导入一个外部包fmt

func main() { // main函数,是程序执行的入口函数
fmt.Println("Go Hello World!") //在终端打印出Go Hello World!
}

进入该文件所在位置打开命令行:

使用go run命令行运行文件helloWorld.go

Windows Go 开发环境下载、安装并配置的更多相关文章

  1. 【C#】VS2015开发环境的安装和配置(二)2016-08-03更新

    分类:C#.VS2015.WPF.ASP.NET MVC.Android.iOS.Unity3D: 更新日期:2016-08-03 按下面介绍的步骤安装即可. 一.安装JDK和Android SDK ...

  2. 【C#】VS2015开发环境的安装和配置(一)2016-08-03更新

    分类:C#.VS2015.WPF.ASP.NET MVC.Android.iOS.Unity3D: 更新日期:2016-08-03 一.简介 为了避免网上乱七八糟的过时介绍,避免误导初学者,这次把至2 ...

  3. go 语言开发环境的安装与配置

    go 语言开发环境的安装与配置 编辑器选择 一直以来都是用sublime,但是听说sublime对于golang的插件支持并不是特别完善,并且VS Code只要在自身所带的扩展商店里安装go插件就可以 ...

  4. 教你10分钟内在Windows上完成Rails开发环境的安装和配置

    原文:http://www.cnblogs.com/tambor/archive/2011/12/25/rails_anzhuang_railsinstaller.html 一般来说,Windows开 ...

  5. Win7 32位系统下Java开发环境的安装及配置

    目录: Java JDK安装. Java JDK系统环境的配置. 配置常见问题的解决. Java JDK的安装 Java Jdk(Java Development Kit)Java开发不可缺少的环境, ...

  6. VS2015开发环境的安装和配置 2016-07-03更新

    创建日期:2016-07-03 一.简介 为了避免网上乱七八糟的过时介绍,避免误导初学者,这次把至2016年6月底C#开发环境各种版本的更新和安装过程重新整理一下贡献出来.目的是为了让对C#感兴趣的初 ...

  7. Windows下Linux 环境 Cygwin安装及配置 基本工具使用

    用久了Ubuntu开发环境,切换到windows多少有些不爽,想在windows下享用linux便捷的工具可以安装强大的Cygwin,本人也是初次使用中学习.本文主要目的让你可以通过cygwin使用基 ...

  8. 从零开始安装搭建win10与ubuntu20.04双系统开发环境——集安装、配置、软件、美化、常见问题等于一体的——超详细教程

    目录 **前言 ** 关于系统安装配置与软件安装 一.Win10安装ubuntu20.04双系统 1.按照自己的需求分区 2.配置软件镜像源 软件包管理工具介绍 更换APT源--使用国内镜像 3.解决 ...

  9. [flutter+dart] windows7下开发环境的安装与配置

    前言 博主是做嵌入式的,参加工作时间也不久,而且是非科班出身,之前从未接触过移动开发.最近了解到了flutter框架和dart语言,想作为第二语言学习一下,因此会从最基础的环节开始,以此博客作为记录, ...

随机推荐

  1. Jquery Validate自定义验证规则,一个汉字等于两个字符长度

    使用Jquery validate时写的一些东西,在这里做个笔记 在使用 Jquery validate 的minlength和maxlength进行文本框内容长度验证的时候,对于一个汉字的长度检测结 ...

  2. Java实验项目三——简单工厂模式

    Program: 请采用采用简单工厂设计模式,为某个汽车销售店设计汽车销售系统,接口car至少有方法print(), 三个汽车类:宝马.奥迪.大众 (属性:品牌,价格),在测试类中根据客户要求购买的汽 ...

  3. Socket 编程介绍

    Socket 编程发展 Linux Socket 编程领域,为了处理大量连接请求场景,需要使用非阻塞 I/O 和复用.select.poll 和 epoll 是 Linux API 提供的 I/O 复 ...

  4. 友链QAQ

    队爷 : 天仙队爷%%% H 队:分块带师%%% KBY :比我小还比我强

  5. LeetCode解题记录(双指针专题)

    1. 算法解释 双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务.也可以延伸到多个数组的多个指针. 若两个指针指向同一数组,遍历方向相同且不会相交,则也称为滑动窗口(两个指针包围的区域 ...

  6. Leetcode No.14 Longest Common Prefix最长公共前缀(c++实现)

    1. 题目 1.1 英文题目 Write a function to find the longest common prefix string amongst an array of strings ...

  7. 浅析vue-cli脚手架命令的执行过程

    上一篇文章,已经大致了解脚手架是什么以及脚手架是如何工作的.接下来,稍微深入一下脚手架的工作过程(以vue-cli为例).首先抛出3个问题: 1.明明全局安装的是@vue/cli,最后执行的命令却是v ...

  8. Guava Cache使用的三种姿势

    姿势一 使用expiredAferWriter 优点 简单 粗暴 缺点 同步阻塞问题:如果多个线程同时请求同一个过期的key,只有一个线程能够获得去加载缓存的锁,但是其他未获取加载缓存锁的线程也会阻塞 ...

  9. 【LeetCode】94. 二叉树的中序遍历

    94. 二叉树的中序遍历 知识点:二叉树:递归:Morris遍历 题目描述 给定一个二叉树的根节点 root ,返回它的 中序 遍历. 示例 输入:root = [1,null,2,3] 输出:[1, ...

  10. Java实战:教你如何进行数据库分库分表

    摘要:本文通过实际案例,说明如何按日期来对订单数据进行水平分库和分表,实现数据的分布式查询和操作. 本文分享自华为云社区<数据库分库分表Java实战经验总结 丨[绽放吧!数据库]>,作者: ...