【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 ...
随机推荐
- Dom 解析XML
xml文件 <?xml version="1.0" encoding="UTF-8"?><data> <book id=&q ...
- [BUUCTF]REVERSE——[ACTF新生赛2020]usualCrypt
[ACTF新生赛2020]usualCrypt 附件 步骤: 例行检查,无壳,32位程序 32位ida载入,直接看main函数 逻辑很简单,一开始让我们输入一个字符串,然后该字符串经过sub_4010 ...
- LuoguP7694 [COCI2009-2010#4] AUTORI 题解
Content 科学论文会大量引用一些早期的著作,因此在一个论文中出现两种不同的命名约定并不少见.这两种不同的命名约定分别是: 长变体,由每个作者姓氏的完整单词由连字符连接而成,例如 Knuth-Mo ...
- Solon,一个轻量级的应用开发框架。发布官网喽!!!
官网发布: https://solon.noear.org/ 项目简介: Solon,是一个轻量级的应用开发框架.更快.更小.更自由! 支持JDK8+:主框架0.1Mb:组合不同的插件应对不同需求:方 ...
- 10分钟快速上车短视频风口:基于uniapp框架创建自己的仿抖音短视APP
在今年也就是第48次发布的<中国互联网络发展状况统计报告>有这样一个数据,21年的上半年以来,我国我国网民规模达10.11亿,其中短视频用户达8.88亿.碎片化的生活场景下,短视频成为人们 ...
- C语言之字符串替换库函数replace
头文件 #include <algorithm> 例子 下面的代码, 将字符串中的 /替换为\ std::string str("C:/demo/log/head/send&qu ...
- ubuntu下AF_INET和AF_INET6的值
关于 演示环境 $ uname -a Linux xxxxxxx 5.4.0-47-generic #51-Ubuntu SMP Fri Sep 4 19:50:52 UTC 2020 x86_64 ...
- 【LeetCode】1018. Binary Prefix Divisible By 5 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...
- CHARINDEX 用法
CHARINDEX 返回字符串中指定表达式的起始位置. 语法 CHARINDEX ( expression1 , expression2 [ , start_location ] ) 参数 expre ...
- Codeforces 849A:Odds and Ends(思维)
A. Odds and Ends Where do odds begin, and where do they end? Where does hope emerge, and will they e ...