【golang学习记录】环境搭建
【golang学习记录】环境搭建
一. 概述
本文是【golang学习记录】系列文章的第一篇,安装Go语言及搭建Go语言开发环境,接下来将详细记录自己学习 go 语言的过程,一方面是为了巩固自己学到的内容,另一方面希望对有同样需求的小伙伴提供一些帮助。
二. 下载并安装 Go
Go官网下载地址(在国内无法访问):https://golang.org/dl/
Go官方镜像站(推荐):https://golang.google.cn/dl/
在Windows中通过可执行文件来安装会自动配置
GOROOT环境变量,省去了手动配置环境变量的麻烦,个人觉得通过下载 zip 包,配置环境变量安装能够更好理解安装流程。
我这里是在 windows 中安装 Go ,所以直接选择 windows 的安装方式即可,如下图所示:

下载完成后,双击下载好的文件,然后按照下图所示步骤安装:

如果你本地已经安装了低版本的 Go,那么点击 Next 后会提示你卸载旧版的 Go,根据提示卸载即可。


等待安装完成,出现下图,即表示安装成功:

因为通过可执行文件安装过程中已经自动配置好了环境变量,所以直接在 CMD 控制台输入 go version 命令验证 Go 是否安装成功:
> go version
go version go1.17.3 windows/amd64
三. Go 环境变量配置和说明
在 CMD 控制台输入 go env 命令查看配置的环境变量:
C:\Users\admin>go env
set GO111MODULE=on
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\admin\AppData\Local\go-build
set GOENV=C:\Users\admin\AppData\Roaming\go\env
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS= -mod=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=C:\Users\admin\go\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=C:\Users\admin\go
set GOPRIVATE=
set GOPROXY=https://goproxy.cn,direct
set GOROOT=D:\environment\Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=D:\environment\Go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.17.3
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=NUL
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\admin\AppData\Local\Temp\go-build3769788971=/tmp/
go-build -gno-record-gcc-switches
Go1.14版本之后,都推荐使用
go mod模式来管理依赖环境了,也不再强制我们把代码必须写在GOPATH下面的src目录了,你可以在你电脑的任意位置编写go代码。
其中我们比较关心的环境变量有如下几个:
GOPATH:可以理解为 go 的工作目录,此目录包含两个文件夹-- bin:存放 go 编译生成的可执行文件
-- pkg:存放 go 项目依赖的第三方 module
GOROOT:是我们安装 go 开发包的路径GO111MODULE:要启用go module支持首先要设置环境变量GO111MODULE,通过它可以开启或关闭模块支持,它有三个可选值:off、on、auto,默认值是on。GO111MODULE=off禁用模块支持,编译时会从GOPATH和vendor文件夹中查找包。GO111MODULE=on启用模块支持,编译时会忽略GOPATH和vendor文件夹,只根据go.mod下载依赖。GO111MODULE=auto,当项目在$GOPATH/src外且项目根目录有go.mod文件时,开启模块支持。
使用 go module 管理依赖后会在项目根目录下生成两个文件
go.mod和go.sum。GOPROXY:Go1.13之后GOPROXY默认值为https://proxy.golang.org,在国内是无法访问的,所以十分建议大家设置GOPROXY,这里我推荐使用goproxy.cn。通过如下命令设置:go env -w GOPROXY=https://goproxy.cn,direct
四. Go 开发工具
Go 采用的是 UTF-8 编码的文本文件存放源代码,理论上使用任何一款文本编辑器都可以做 Go 语言开发,比较常用的开发工具是 VS Code和Goland。 VS Code是微软开源的编辑器,而Goland是 jetbrains 出品的付费 IDE。
因为我是做的比较多的是 Java 开发,使用的是 idea,并且习惯了 idea 不想下载其他的开发工具,所以这里介绍在 idea 中安装 Go 插件进行开发。
打开 idea 在 Plugins 中搜索 go ,安装下图所示的插件:

安装完成后,最好是重启一下 idea,让插件生效。安装好插件之后,go 的开发工具其实就配置好了,
五. 第一个 Go 程序
现在我们来创建第一个Go项目——hello-go,在我们桌面创建一个hello-go目录。
使用 go module 模式新建项目时,我们需要通过 go mod init 项目名 命令对项目进行初始化,该命令会在项目根目录下生成 go.mod 文件。例如,我们使用hello-go 作为我们第一个Go项目的名称,在前面创建目录的 cmd 命令行中执行如下命令:
go mod init hello-go
查看生成的 go.mod 文件:
> cat go.mod
module hello-go
go 1.17
使用 idea 打开 hello-go 目录,idea 会提示你没有配置 GOROOT,我们根据提示,添加安装的 GOROOT路径即可。选择项目,右键新建一个 Go File 文件:


在 main.go 文件中输入如下内容:
package main // 声明 main 包,表明当前是一个可执行程序
import "fmt" // 导入内置 fmt 包
func main(){ // main函数,是程序执行的入口
fmt.Println("Hello World!") // 在终端打印 Hello World!
}

在 idea 中的第一个 Go 程序就运行成功了~
在 cmd 终端中输入命令 go run main.go也可以执行程序,该命令本质上也是先编译再执行。
编译 Go 程序为可执行文件
go build命令表示将源代码编译成可执行文件。
在 idea 的终端中执行下面的命令,如下图所示:

默认我们go build的可执行文件都是当前操作系统可执行的文件,它先编译源代码在当前目录生成可执行文件,所以我们可以在当前目录执行 hello-go.exe,如果我们希望在其他地方也可以执行,则需要使用 go install 命令。
go install表示安装的意思,它先编译源代码得到可执行文件,然后将可执行文件移动到GOPATH的 bin 目录下。因为我们的环境变量中配置了GOPATH下的 bin 目录,所以我们就可以在任意地方直接执行可执行文件了。
参考文档
https://www.liwenzhou.com/posts/Go/install_go_dev/
【golang学习记录】环境搭建的更多相关文章
- 人工智能之深度学习-初始环境搭建(安装Anaconda3和TensorFlow2步骤详解)
前言: 本篇文章主要讲解的是在学习人工智能之深度学习时所学到的知识和需要的环境配置(安装Anaconda3和TensorFlow2步骤详解),以及个人的心得体会,汇集成本篇文章,作为自己深度学习的总结 ...
- golang开发android环境搭建_window
golang开发android环境搭建介绍 一 安装依赖软件: git:版本管理 go: go开发环境(版本>=1.5),可直接下载window版的go安装包. android studio: ...
- hive_学习_01_hive环境搭建(单机)
一.前言 本文承接上一篇:hbase_学习_01_HBase环境搭建(单机),主要是搭建 hive 的单机环境 二.环境准备 1.说明 hive 的下载来源有: 官方版本:http://archive ...
- hbase_学习_01_HBase环境搭建(单机)
一.前言 本文承接上一篇:hadoop_学习_02_Hadoop环境搭建(单机) ,主要是搭建HBase的单机环境 二.环境准备 1.说明 hbase 的下载来源有: 官方版本:http://arc ...
- hadoop_学习_02_Hadoop环境搭建(单机)
一.环境准备 1.说明 hadoop的下载来源有: 官方版本:http://archive.apache.org/dist/hadoop/ CDH版本:http://archive.cloudera. ...
- 从0开始学爬虫9之requests库的学习之环境搭建
从0开始学爬虫9之requests库的学习之环境搭建 Requests库的环境搭建 环境:python2.7.9版本 参考文档:http://2.python-requests.org/zh_CN/l ...
- Ubuntu16.04深度学习基本环境搭建,tensorflow , keras , pytorch , cuda
Ubuntu16.04深度学习基本环境搭建,tensorflow , keras , pytorch , cuda Ubuntu16.04安装 参考https://blog.csdn.net/flyy ...
- ubuntu 深度学习cuda环境搭建,docker-nvidia 2019-02
ubuntu 深度学习cuda环境搭建 ubuntu系统版本 18.04 查看GPU型号(NVS 315 性能很差,比没有强) 首先最好有ssh服务,以下操作都是远程ssh执行 lspci | gre ...
- Python基础学习之环境搭建
Python如今成为零基础编程爱好者的首选学习语言,这和Python语言自身的强大功能和简单易学是分不开的.今天我们将带领Python零基础的初学者完成入门的第一步——环境搭建.本文会先来区分几个在P ...
随机推荐
- Mac配置apache,mysql
===========Apache=============================== 1. 启动关闭Apache MAC系统已经预装了apache,启动.关闭.查看版本等命令如下: 启动a ...
- 微信小程序项目使用npm安装vant-weapp的正确步骤,简单易懂!!
微信小程序项目使用npm安装vant-weapp的正确步骤 1.在当前小程序项目目录npm init -y 构建npm项目 2.运行命令 npm install vant-weapp -S --pro ...
- 【web】docker复现环境踩坑
在先知看到有师傅发了个学习 P 牛的代码审计的文章,在 github 上下下来复现环境,结果 docker 各种问题,气死 安装 docker-compose:pip install -i https ...
- Mac 远程上传文件到 Linux
打开Mac自带终端: 在最顶端选择Shell ->新建远程连接: 选择sftp连接,填好服务器地址: 连接成功后.上传文件,使用 put 命令: put 本地文件路径 远程主机路径
- 复杂SQL案例:用户授权渠道查询
供参考: SELECT r.course_id 课程id, r.user_id 用户ID, u.user_full_name 姓名, u.province_name 省名, u.city_name 城 ...
- mdf与ldf文件如何还原到SQL Server数据库
1,首先新建两个数据库(Db1,Db2) 在Db1数据库中添加一个表: 然后点击数据库右键-属性-文件-找到文件路径 然后复制这个路径中的Db1的数据,把这两个文件放到其他文件之下 复制之前需要关闭S ...
- centos7安装docker,并配置镜像加速
yum安装gcc yum -y install gcc yum -y install gcc-c++ 卸载旧版本 (没有可忽略) yum -y remove docker docker-common ...
- JS监控浏览器窗口是否活动,最小化操作
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- fedora之自动寻找命令并提示安装PackageKit-command-not-found
fedora 1.比如,我要用clang 命令编译代码,但是没有该指令.比如: clang main.cxx -o main 2.那么,输入未知命令,希望fedora会自动寻找相对应的包,再并提示安装 ...
- 【九度OJ】题目1138:进制转换 解题报告
[九度OJ]题目1138:进制转换 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1138 题目描述: 将一个长度最多为30 ...