Go语言开发环境
安装
下载地址:
Go官网下载地址:https://golang.org/dl/
Go官方镜像站(推荐):https://golang.google.cn/dl/
版本的选择:
Windows平台和Mac平台推荐下载可执行文件版,Linux平台下载压缩文件版。
Go语言更新迭代比较快,推荐使用较新版本,体验最新特性。
Linux下安装
下载地址:
Go官网下载地址:https://golang.org/dl/
Go官方镜像站(推荐):https://golang.google.cn/dl/
如果不是要在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是对当前用户生效的,根据自己的情况自行选择一个文件打开,添加如下两行代码,保存退出。
1 | export GOROOT=/usr/local/go |
在开发 Go 项目时,你还需要一个环境变量来保存你的工作目录。
export GOPATH=$HOME/Applications/Go
$GOPATH
可以包含多个工作目录,取决于你的个人情况。如果你设置了多个工作目录,那么当你在之后使用go get
(远程包安装命令)时远程包将会被安装在第一个目录下。
修改/etc/profile后要重启生效,修改$HOME/.profile后使用source命令加载$HOME/.profile文件即可生效。 检查:
1 | ~ go version |
GOPROXY
1 | $ export GOPROXY=https://goproxy.cn |
或者
1 | $ echo "export GOPROXY=https://goproxy.cn" >> ~/.profile && source ~/.profile |
环境变量
GOROOT和GOPATH
GOROOT
和GOPATH
都是环境变量,其中GOROOT
是我们安装go开发包的路径,而从Go 1.8版本开始,Go开发包在安装完成后会为GOPATH
设置一个默认目录,参见下表。
我们只需要记住默认的GOPATH
路径在哪里就可以了,并且默认情况下 GOROOT
下的bin目录及GOPATH
下的bin目录都已经添加到环境变量中了,我们也不需要额外配置了。
Go1.14版本之后
,都推荐使用go mod
模式来管理依赖环境了,也不再强制我们把代码必须写在GOPATH
下面的src目录了;GOPATH
下可以包含多个包含 Go 语言源码文件、包文件和可执行文件的路径,而这些路径下又必须分别包含三个规定的目录:src、pkg 和 bin
,这三个目录分别用于存放源码文件、包文件和可执行文件。你可以在你电脑的任意位置编写go代码。(网上有些教程适用于1.11版本之前。)
在
老版本1.11之前
,Go语言开发的时候,我们的代码总是会保存在$GOPATH/src
目录下。在工程经过go build、go install
或go get
等指令后,会将下载的第三方包源代码文件放在$GOPATH/src
目录下, 产生的二进制可执行文件放在$GOPATH/bin
目录下,生成的中间缓存文件会被保存在$GOPATH/pkg
下。
如果我们使用版本管理工具(Version Control System,VCS。常用如Git)来管理我们的项目代码时,我们只需要添加$GOPATH/src目录的源代码即可。bin 和 pkg 目录的内容无需版本控制。
GOPROXY
默认GoPROXY配置是:GOPROXY=https://proxy.golang.org,direct
,由于国内访问不到https://proxy.golang.org
,所以我们需要换一个PROXY,这里推荐使用https://goproxy.io
或https://goproxy.cn
。
可以执行下面的命令修改GOPROXY:go env -w GOPROXY=https://goproxy.cn,direct
企业开发者的go项目结构
参考文档:go语言中文文档
编辑器
vs code
Visual Studio Code
,简称VS Code
,它是目前使用人数最多的编辑器。尽管它由微软发布于2015年,与其他热门编辑器相比显得有些年轻,但它在过去几年中一直在不停的更新,它在最新的Stack Overflow
调查中被选为Web
开发人员中最受欢迎的文本编辑器。
VS Code
不仅仅是一个基本的代码编辑器。有人说它更像是IDE
而不是代码编辑器,因为它提供了许多通常只在IDE
中才有的功能。主要功能包括内置调试工具,智能代码提示,集成终端以及对简易的Git
操作(微软刚收购了GitHub)。作为初学者,您可以利用这些功能大大提高编程效率。
下载地址:
https://code.visualstudio.com/
配置中文
点击左侧菜单栏最后一项管理扩展
,在搜索框中输入chinese
,选中结果列表第一项,点击install
安装。
安装go插件
启动vscode
选择插件->搜go
选择Go for Visual Studio Code
插件点击安装即可
安装Go语言开发工具包
在Go语言开发的时候为我们提供诸如代码提示、代码自动补全等功能。
Windows平台按下Ctrl+Shift+P
,Mac平台按Command+Shift+P
,这个时候VS Code
界面会弹出一个输入框;
我们在这个输入框中输入>go:install
,下面会自动搜索相关命令,我们选择Go:Install/Update Tools
这个命令,选中并会回车执行该命令(或者使用鼠标点击该命令)
VS Code此时会下载并安装上图列出来的16个工具,但是由于国内的网络环境基本上都会出现安装失败
两种方法解决这个问题:
方法一:使用git下载源代码再安装
我们可以手动从github上下载工具,(执行此步骤前提需要你的电脑上已经安装了git)
第一步:现在自己的GOPATH
的src
目录下创建golang.org/x
目录
第二步:在终端/cmd中cd到GOPATH/src/golang.org/x
目录下
第三步:执行git clone https://github.com/golang/tools.git tools
命令
第四步:执行git clone https://github.com/golang/lint.git
命令
第五步:按下Ctrl/Command+Shift+P
再次执行Go:Install/Update Tools
命令,在弹出的窗口全选并点击确定,这一次的安装都会SUCCESSED了。
经过上面的步骤就可以安装成功了。 这个时候创建一个Go文件,就能正常使用代码提示、代码格式化等工具了。
方法二:下载已经编译好的可执行文件
如果上面的步骤执行失败了或者懒得一步一步执行,可以直接下载我已经编译好的可执行文件,拷贝到自己电脑上的 go/bin
(GO的安装包目录不是代码包啊) 目录下。
链接: https://pan.baidu.com/s/1kxXsoSXmqwloTKsvRGZbpQ
提取码: cucu
注意:特别是Mac下需要给拷贝的这些文件赋予可执行的权限。
第一个Go程序
Hello World
现在我们来创建第一个Go项目——hello
。在我们桌面创建一个hello
目录。
在该目录中创建一个main.go文件:
1 | package main // 声明 main 包,表明当前是一个可执行程序 |
go build
go build
表示将源代码编译成可执行文件,或者在其他目录执行以下命令:
1 | go build hello |
go编译器会去 GOPATH
的src目录下查找你要编译的hello
项目
如果报错
go: cannot find main module; see 'go help modules'
,可能是变量GO111MODULE
导致,试试设置为GO111MODULE=off
编译得到的可执行文件会保存在执行编译命令的当前目录下,如果是windows平台会在当前目录下找到hello.exe可执行文件。
可在终端直接执行该hello.exe文件:
1 | c:\desktop\hello>hello.exe |
我们还可以使用-o
参数来指定编译后得到的可执行文件的名字。
1 | go build -o heiheihei.exe |
go install
go install
表示安装的意思,它先编译源代码得到可执行文件,然后将可执行文件移动到GOPATH
的bin目录下。因为我们的环境变量中配置了GOPATH
下的bin目录,所以我们就可以在任意地方直接执行可执行文件了。
go install与go build 的区别
go install
与go build
都可生成执行文件
go build
会生成可实行文件放在当前目录中。go install
则会把它放到$GOPATH/bin
中。
go install
还会把导入的依赖包编译到$GOPATH/pkg
,并缓存,如果包未做更改,下次编译则直接使用缓存。go build
命令加参数-i
也能达到go install
的效果。
如果项目很大,每次编译都要花很长时间,则建议使用go install
来编译,充分利用它对依赖包的缓存功能。
go run
1 | # 直接执行go文件,不用编译 |
跨平台编译(more)
默认我们go build的可执行文件都是当前操作系统可执行的文件,如果我想在windows下编译一个linux下可执行文件,那需要怎么做呢?
只需要指定目标操作系统的平台和处理器架构即可:
1 | SET CGO_ENABLED=0 // 禁用CGO |
使用了cgo的代码是不支持跨平台编译的
然后再执行go build命令,得到的就是能够在Linux平台运行的可执行文件了。
Mac 下编译 Linux 和 Windows平台 64位 可执行程序:
1 | CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build |
Linux 下编译 Mac 和 Windows 平台64位可执行程序:
1 | CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build |
Windows下编译Mac平台64位可执行程序:
1 | SET CGO_ENABLED=0 |