Go开发环境搭建
安装Go语言及搭建Go语言开发环境
注意:Go语言1.14版本之后推荐使用go modules管理以来,也不再需要把代码写在GOPATH目录下了,之前旧版本的教程戳这个链接。
下载
下载地址
Go官网下载地址:https://golang.org/dl/
Go官方镜像站(推荐):https://golang.google.cn/dl/
版本的选择
Windows平台和Mac平台推荐下载可执行文件版,Linux平台下载压缩文件版。
下图中的版本号可能并不是最新的,但总体来说安装教程是类似的。Go语言更新迭代比较快,推荐使用较新版本,体验最新特性。

安装
Windows安装
此安装实例以 64位Win10系统安装 Go1.14.1可执行文件版本为例。
将上一步选好的安装包下载到本地。

双击下载好的文件,然后按照下图的步骤安装即可。





Linux下安装
如果不是要在Linux平台敲go代码就不需要在Linux平台安装Go,我们开发机上写好的go代码只需要跨平台编译(详见文章末尾的跨平台编译)好之后就可以拷贝到Linux服务器上运行了,这也是go程序跨平台易部署的优势。
我们在版本选择页面选择并下载好go1.14.1.linux-amd64.tar.gz文件:
| wget https://dl.google.com/go/go1.14.1.linux-amd64.tar.gz | 
将下载好的文件解压到/usr/local目录下:
| tar -zxvf go1.14.1.linux-amd64.tar.gz -C /usr/local # 解压 | 
如果提示没有权限,加上sudo以root用户的身份再运行。执行完就可以在/usr/local/下看到go目录了。
配置环境变量: Linux下有两个文件可以配置环境变量,其中/etc/profile是对所有用户生效的;$HOME/.profile是对当前用户生效的,根据自己的情况自行选择一个文件打开,添加如下两行代码,保存退出。
| export GOROOT=/usr/local/go | 
修改/etc/profile后要重启生效,修改$HOME/.profile后使用source命令加载$HOME/.profile文件即可生效。 检查:
| ~ go version | 
Mac下安装
下载可执行文件版,直接点击下一步安装即可,默认会将go安装到/usr/local/go目录下。

Mac 也可以通过homebrew 进行安装
| brew install go | 
| //编辑~/.bash_profile文件 | 
检查
上一步安装过程执行完毕后,可以打开终端窗口,输入go version命令,查看安装的Go版本。

GOROOT和GOPATH
GOROOT和GOPATH都是环境变量,其中GOROOT是我们安装go开发包的路径,而从Go 1.8版本开始,Go开发包在安装完成后会为GOPATH设置一个默认目录,参见下表。
GOPATH在不同操作系统平台上的默认值

可以通过以下方法查看默认的GOPATH目录:




我们只需要记住默认的GOPATH路径在哪里就可以了,并且默认情况下 GOROOT下的bin目录及GOPATH下的bin目录都已经添加到环境变量中了,我们也不需要额外配置了。
GOPATH之下主要包含三个⽬目录: bin、pkg、src。bin⽬目录主要存放可执⾏文件;
pkg⽬目录存放编译好的库⽂文件, 主要是*.a⽂文件; src⽬目录下主要存放go的源文件
- 个人开发

- 团队开发

- 企业开发者

go env内的属性
GOPROXY
Go1.14版本之后,都推荐使用go mod模式来管理依赖环境了,也不再强制我们把代码必须写在GOPATH下面的src目录了,你可以在你电脑的任意位置编写go代码。(网上有些教程适用于1.11版本之前。)
默认GoPROXY配置是:GOPROXY=https://proxy.golang.org,direct,由于国内访问不到https://proxy.golang.org,所以我们需要换一个PROXY,这里推荐使用https://goproxy.io或https://goproxy.cn。
当你安装的GO的语言版本大于1.13的时候,那么就不用这么麻烦了,直接使用go env -w命令就行了
可以执行下面的命令修改GOPROXY:
| go env -w GOPROXY=https://goproxy.cn,direct | 
GO111MODULE
GO111MODULE有三个值:off, on和auto(默认值)。
- GO111MODULE=off,go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找。 
- GO111MODULE=on,go命令行会使用Module机制,而一点也不会去GOPATH目录和Vendor下查找。 
- GO111MODULE=auto,默认值,go命令行将会根据当前目录来决定是否启用module功能。这种情况下可以分为两种情形: 
- 在GOPATH下的工程,不使用Module机制,不在GOPATH下的工程使用 
- 当前目录在GOPATH/src之外且该目录包含go.mod文件 
- 当前文件在包含go.mod文件的目录下面。 
| go env -w GO111MODULE=off | 
报错
| # GOPATH entry is relative; must be absolute path: "%USERPROFILE%\\go". | 
参考
01.开发环境搭建 · 语雀 (yuque.com)
准备物料 · 语雀 (yuque.com)
安装和vscode环境配置 · 语雀 (yuque.com)
文件夹结构
Go 安装目录($GOROOT)的文件夹结构应该如下所示:
README.md, AUTHORS, CONTRIBUTORS, LICENSE
- /bin:包含可执行文件,如:编译器,Go 工具
- /doc:包含示例程序,代码工具,本地文档等
- /lib:包含文档模版
- /misc:包含与支持 Go 编辑器有关的配置文件以及 cgo 的示例
- /os_arch:包含标准库的包的对象文件(- .a)
- /src:包含源代码构建脚本和标准库的包的完整源代码(Go 是一门开源语言)
- /src/cmd:包含 Go 和 C 的编译器和命令行脚本
Go开发编辑器
Go采用的是UTF-8编码的文本文件存放源代码,理论上使用任何一款文本编辑器都可以做Go语言开发,这里推荐使用VS Code和Goland。 VS Code是微软开源的编辑器,而Goland是jetbrains出品的付费IDE。
我们这里使用VS Code 加插件做为go语言的开发工具。
VS Code介绍
VS Code全称Visual Studio Code,是微软公司开源的一款免费现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、GIT 等特性,支持插件扩展,支持 Win、Mac 以及 Linux平台。
虽然不如某些IDE功能强大,但是它添加Go扩展插件后已经足够胜任我们日常的Go开发。
下载与安装
VS Code官方下载地址:https://code.visualstudio.com/Download
三大主流平台都支持,请根据自己的电脑平台选择对应的安装包。

配置
安装中文简体插件
点击左侧菜单栏最后一项管理扩展,在搜索框中输入chinese ,选中结果列表第一项,点击install安装。
安装完毕后右下角会提示重启VS Code,重启之后你的VS Code就显示中文啦!

VSCode主界面介绍:

安装go扩展
现在我们要为我们的VS Code编辑器安装Go扩展插件,让它支持Go语言开发。

第一个Go程序
Hello World
现在我们来创建第一个Go项目——hello。在我们桌面创建一个hello目录。
在该目录中创建一个main.go文件
| package main // 声明 main 包,表明当前是一个可执行程序 | 
go build
编译
go build表示将源代码编译成可执行文件。
在hello目录下执行:
| go build | 
或者在其他目录执行以下命令:
| go build hello | 
go编译器会去 GOPATH的src目录下查找你要编译的hello项目
编译得到的可执行文件会保存在执行编译命令的当前目录下,如果是windows平台会在当前目录下找到hello.exe可执行文件。
可在终端直接执行该hello.exe文件:
| c:\desktop\hello>hello.exe | 
我们还可以使用-o参数来指定编译后得到的可执行文件的名字。
| go build -o heiheihei.exe | 
编译参数
| 以下 build 参数可用在 build, clean, get, install, list, run, test | 
Windows下VSCode切换cmd.exe作为默认终端
如果你打开VS Code的终端界面出现如下图场景(注意观察红框圈中部分),那么你的VS Code此时正使用powershell作为默认终端:

十分推荐你按照下面的步骤,选择cmd.exe作为默认的终端工具:

此时,VS Code正上方中间位置会弹出如下界面,参照下图挪动鼠标使光标选中后缀为cmd.exe的那一个,然后点击鼠标左键。
最后重启VS Code中已经打开的终端或者直接重启VS Code就可以了。

如果没有出现下拉三角,也没有关系,按下Ctrl+Shift+P,VS Code正上方会出现一个框,你按照下图输入shell,然后点击指定选项即可出现上面的界面了。

充说明:由于VS Code对go mod模式的支持暂时还不够完善,建议大家使用Goland编辑器。
go install
go install表示安装的意思,它先编译源代码得到可执行文件,然后将可执行文件移动到GOPATH的bin目录下。因为我们的环境变量中配置了GOPATH下的bin目录,所以我们就可以在任意地方直接执行可执行文件了。
跨平台编译
默认我们go build的可执行文件都是当前操作系统可执行的文件,如果我想在windows下编译一个linux下可执行文件,那需要怎么做呢?
只需要指定目标操作系统的平台和处理器架构即可:
| SET CGO_ENABLED=0 // 禁用CGO | 
使用了cgo的代码是不支持跨平台编译的
然后再执行go build命令,得到的就是能够在Linux平台运行的可执行文件了。
Mac 下编译 Linux 和 Windows平台 64位 可执行程序:
| CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build | 
Linux 下编译 Mac 和 Windows 平台64位可执行程序:
| CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build | 
Windows下编译Mac平台64位可执行程序:
| SET CGO_ENABLED=0 | 











