17

一文搞定Go语言开发环境的搭建

 4 years ago
source link: https://studygolang.com/articles/27204
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

文章首发自公众号:Go编程时光

《Go编程时光》,一个能带你学习 Go 语言的专栏,同时欢迎搜索我的同名公众号【Go编程时光】(排版精美更适合阅读),第一时间获取Go语言干货。

1. 下载安装 Go语言

下载地址: https://golang.google.cn/dl/

26JJNrU.png!web

下载完成后,直接双击 msi 文件进行安装,我习惯将软件安装在我的 E 盘下的 Program Files 目录下

jmyeYfM.png!web

后面就是一路点击 Next 即可,直到出现如下界面,安装完成。

aQfUJvU.png!web

2. 配置 Goland 环境

学习编程语言,使用一个称心的 IDE,可以帮你省去很多麻烦。

开发 Python 项目,我习惯使用 PyCharm,因为已经习惯了 JetBrains 风格的IDE,可以替我省去很多熟悉新IDE的成本,所以这里我照样使用 JetBrains 专门为 Go语言开发的IDE: Goland

Goland 下载地址: https://download.jetbrains.com/go/goland-2019.2.3.exe

双击下载下来的 exe 文件,除了选择安装路径,我惯例更换成 E 盘之外,一路选择 Next , 直到如下界面,根据你的需要全选中(推荐全选)

mAzauau.png!web

接着一路 Next ,直到出现如下界面,安装完成,选择 Run Gogland 立即运行。

EjiMZfz.png!web

此时如果你若没有购买 JetBrains 的激活码,此时是无法使用 Goland 的。

NjUfma2.png!web

为了让我们的学习更加顺畅,这里会教大家使用 破解的方式获得 Goland 的使用权。

首先下载相关的破解补丁: http://c.biancheng.net/uploads/course/go/Goland_Crack_Sinicization.zip

下载的 zip 包里包含三个文件

qeQ3mqU.png!web

  • jetbrains-agent.jar:破解补丁
  • resources_cn.jar:汉化补丁
  • 激活码.txt:激活码

将 jetbrains-agent.jar 拷贝到 你的 Goland 安装目录的bin文件夹下,我的路径是:E:\Program Files\JetBrains\GoLand 2019.2.3\bin

然后用编辑器打开这两个文件

feUVZzj.png!web

在最后一行添加如下一行,你要根据自己路径对应修改后面的值

-javaagent:E:\Program Files\JetBrains\GoLand 2019.2.3\bin\jetbrains-agent.jar

接着打开回到你的 Goland 启动界面,点击 Activation code ,复制 激活码.txt 中的激活码,填入再点击 OK

nyemEnz.png!web

此时你的 Goland 已经可以正常使用了,创建我的项目目录,顺便设置好 GOROOT 。

MV7Rnqb.png!web

创建好Project后,再点击 Files->Settings->GOPATH,添加我们的项目目录 F:\Go-Player

7ZZzQnf.png!web

随便点击一个go文件,就能在下图箭头处看到配置入口,点击进入配置一下 Go运行器。

6RRJ733.png!web

按照如下指示进行配置。

2iIJJjV.png!web

去掉参数提示

b2ARVbI.png!web

设置 goproxy

eM7F3uq.png!web

设置 goimports(自动格式化插件),如果 你之前 没有安装 ,会提示你点击 yes 下载安装 。

63ERVbF.png!web

至此,环境配置完成。

在项目根目录下,创建如下三个文件夹,并在 src 目录下创建一个hello.go 的文件。

fMfauyf.png!web

点击运行按钮,在控制台我们看到了熟悉的 Hello, World!

z6F3uyq.png!web

3. 配置 VS Code 环境

提前设置用户级的环境变量

GOPATH = F:\Go-Player
PATH = %GOPATH%\bin  # 以追加的方式

昨天评论区有人问,GOPATH 和 GOROOT 是什么?为什么需要设置?回想一下 你学 Python 的话,安装 Python 解释器的时候,是不是也要设置环境变量?这里也是类似。

GOROOT :在GO语言中表示的是 Go语言编译、工具、标准库等的安装路径,通过它可以告诉系统你的 go.exe 是放在哪里,不设置的话,你后面执行 go getgo install 的时候,系统就不认识它了。

而 GOPATH环境变量则表示 Go的工作目录,这个目录指定了需要从哪个地方寻找GO的包、可执行程序等,这个目录可以是多个目录表示。这里我设置成我的工作空间(目录你可以自己定) : F:\Go-Player ,如果不设置的话 ,默认是在你的用户目录下的 go 文件夹。

这时要再说一点,GO 项目中,一般来说它的工作目录结构是这样的:

  • bin目录:包含了可执行程序,注意是可执行的,不需要解释执行。

  • pkg目录:包含了使用的包或者说库。

  • src目录:里面包含了go的代码源文件,其中仍按包的不同进行组织。

所以后面我的创建的GO工作目录,也是按照这个标准来,先说明一下。

接下来,要开始配置 VS Code 环境。

打开你的 VS Code软件,先确认你设置的环境变量已经生效,点击 Terminal -> New Terminal ,使用 cmd 命令查看环境变量。

uMfQVzU.png!web

如上图所求,我的环境变量是OK的,如果你的输出是指向你的用户目录: %USERPROFILE%\go 建议你不要折腾(因为我无论重启多少次 VS Code,其记录的GOPATH始终指向%USERPROFILE%\go), 直接重启你的电脑。

好了之后,我们要从 github 上下载两个仓库,之所以要手动下载,是因为有墙的存在,在线安装的话,很多插件你会下载失败。

创建目录 src/goland.org/x/ ,并进入此目录,执行命令

$ git clone https://github.com/golang/tools.git
$ git clone https://github.com/golang/lint.git

点击 File - Open Folder 安装两个插件:

第一个是:Go 语言的扩展插件

EBJrUzu.png!web

第二个是:Code Runner,让你的 VS Code 能够编译运行 Go 的程序。

7ZFN3eM.png!web

随便点开一个 go 文件,在你的右下角会提示要你安装一些工具,安装的包有些由于墙的原因,无法下载,为了保证下载顺利,可以设置一下代理。

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

然后再点击 Install All

ZFveUja.png!web

然后你在 OUTPUT 就能看到安装进度

F3En2uN.png!web

安装的 exe 文件会放在 %GOPATH%/bin 下,也就是 F:\Go-Player\bin

7VfUJ3R.png!web

而此的 src 目录结构是这样的

BbeI7ra.png!web

到这时环境配置完成,编写 HelloWorld,并运行查看输出,一切完成。

3miYjuZ.png!web

4. 配置环境变量

当你在终端使用 go env 的时候,会打印出go 相关的所有环境变量

$ go env
set GO111MODULE=
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\wangbm\AppData\Local\go-build
set GOENV=C:\Users\wangbm\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=E:\MING-Code\GoPlayer
set GOPRIVATE=
set GOPROXY=https://goproxy.cn,direct
set GOROOT=D:\Program Files (x86)\Go-1.13.6
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=D:\Program Files (x86)\Go-1.13.6\pkg\tool\windows_amd64
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=
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

想查看几个特定的环境变量就加在 go env 后面

$ go env GOPATH
E:\MING-Code\GoPlayer
$ go env GOROOT
D:\Program Files (x86)\Go-1.13.6
$ go env GOPROXY
https://goproxy.cn,direct

以上环境变量很多,这里仅设置下面这两个就足够了

  • 一个是GO111MODULE 设置为 on,表示使用 go modules 模式
$ go env -w GO111MODULE=on
  • 一个是开启代理,防止下载包失败(前面可能你已经设置过)
$ go env -w GOPROXY=https://goproxy.cn,direct

aeYbe2A.png!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK