🚀Go语言的环境搭建
📓推荐网站(不断完善中):个人博客
📌个人主页:个人主页
🏝立志赚钱,干活想躺,瞎分享的摸鱼工程师一枚
🏖前言
正所谓工欲善其事,必先利其器。任何一个语言的学习过程个人感觉都离不开一个流程那就是:
语言背景->环境搭建->工具使用->基础语法->高级语法->数据库->框架
这样的一个大致学习过程,所以今天在学习Go语言之前也先从环境搭建开始。
1.开发工具的选择
每个编程语言都有五花八门的IDE工具,那么我就不再一一介绍了,简单说一下通常市面上用的比较多的工具
-
VSCode(全称:Visual Studio Code),官方下载地址
- 一款由微软开发且跨平台的免费源代码编辑器,主打便捷、轻量、扩展(目前博主选择使用它)
-
GoLand
-
GoLand 是 JetBrains 公司推出的 Go 语言集成开发环境(同样支持JetBrains 的插件体系),可自行搜索破解教程
-
2.开发包安装
在配置环境和介绍之前都请先下载对应的安装包:
以下三个地址都可以下载(大家可以自行选择下载速度快的):
下载页面大致如下
需要根据不同系统根据自身情况选择
Windows:选择.msi
Mac:如果是Intel的CPU的选择amd64
,M系列芯片则选另一个
Linux:选择.tar.gz
总体来说Go语言的环境安装还是比较简单,大部分情况下选择下一步
安装法即可
2.1.Mac下
-
下载对应的
pkg
安装包后打开,选择下一步安装法,默认会将go安装到/usr/local/go
目录下。 -
检测环境是否安装成功则可以输入指令
go version
go version go version go1.19.2 darwin/amd64
2.2.Windows下
-
首先要下载对应的
.msi
安装包,而后打开有以下界面 -
同样可以打开cmd命令框输入对应的
go version
指令,如果有版本信息弹出则表示安装成功! -
建议安装的时候直接按照推荐目录安装,这样会直接在环境变量中生成
GOROOT
变量- 所谓的
GOROOT
就是在系统中制定你的GO的安装路径,告诉计算机你GO语言的开发包在什么位置,才能保证后续的开发工作顺利进行下去。 - 如果你更改了Go的安装路径,那么你需要手动在系统的环境变量中配置
GOROOT
将路径指定为你安装Go开发包的位置。
- 所谓的
3.关于Go项目的目录结构
一般来说,在安装完Go的环境后,应当开始进行环境变量的配置,但是在这里我想先对Go的工程项目的目录结构进行解释,以方便大家进一步了解关于Go语言的环境变量的配置(因为很多没有其他语言基础的人在这里很容易产生疑惑)
来看一下Go的项目结构的图解
注意:Go的项目结构是官方规定的标准,要按照这个目录结构来且文件夹命名是固定的
-
GOPATH:
可以先暂时将他理解成我们的工作空间(我们之后Go的开发都将在GOPATH这个目录下进行) -
bin:
用来放置编译后的可以执行文件, 比如在windows环境下,go的代码被编译后就会在该目录下生成一个.exe
的可执行文件 -
pkg:
在Go编译过程中会产生许多的库文件则放置在该目录下 -
src:
存放源码文件的地方,就是我们平常开发过程中的写的代码就放置在这个目录下-
一般在这个目录下我们开发的时候不会直接在src下直接下,会区分项目,所以一般都会先一个目录层级代表项目,然后在这个目录下进行代码的开发。
- 举例我们要开发一个CRM项目那么我们要做的事情如下
- 在
$GOPATH/src/
目录下创建一个crm
文件夹 - 在
$GOPATH/src/crm/
目录进行代码开发写xx.go
文件- PS:以上内容为举例,并不是完整的项目规范(项目规范会在后续慢慢介绍)
- 在
- 举例我们要开发一个CRM项目那么我们要做的事情如下
-
4.配置环境变量
在讲述完Go的项目结构后,我们回过头来讲解所谓的环境变量配置。所谓的配置环境变量其实它的本质就是为了让我们的计算机能够准确的执行go
相关的指令,比如go build、go run、go get、go install
等等诸多指令。
那么我们在之前说了,go的内容都应当在GOPATH(工作空间)
下执行,所以我们配置环境变量的目的就是为了让计算机能够准确的找到你电脑上Go语言开发时候的工作空间在哪里。这样go
相关指令才可以运行下去
比如go build
指令的本质实际上就是要找到可以编译的.go
源码文件将它编译成可执行文件,那么在这种情况下你想要在任何目录下都能成功执行该指令,就要告诉计算机我们的工作空间在哪里,我们写的源码在哪里,这时候我们就需要对GOPATH
进行配置拉!
4.1.Windows下配置GOPATH
通过上面的描述我们可以知道GOPATH
是一个环境变量,用来表明你写的go项目的存放路径(工作目录),假设我们在我们的电脑中自行创建一个目录D:\code\go
,我们准备用它来作为我们后续开发Go的工作目录,那么配置如下
-
打开电脑的
属性
-
点击
高级系统设置
-
选择
环境变量
-
在
系统变量
下,选择新建
-
填写相关
GOPATH
路径信息 -
点击
确定
-
在对应的
GOPATH
目录下完善Go的项目结构 -
可以在cmd命令行中使用
go env
来查看环境配置结果(如果之前已经打开了cmd终端记得在配置后重启)
配置GOROOT
同样还是在和GOPATH一样的环境变量中,新建一个GOROOT进行配置
- 变量名必须为大写的
GOROOT
- 变量值为GO开发包的安装路径,比如如果我的GO开发包安装在
C:\Go
,变量值就是C:\Go
4.2.Mac下配置GOPATH
MacOS系统的配置与Windows的本质是一样的,也是为了让Go在Mac环境下能找到对应的工作目录,但是配置的方式是通过命令来完成的,请参考:
-
首先打开终端,输入以下指令
# 1.首先打开系统配置文件 vi ~/.bash_profile # 2.在配置文件中输入 (选择你自己存放代码的目录) export GOPATH=/Users/dengs/Desktop/Golang/workspace # 3.输入PATH配置 export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin # 4.让配置文件立即生效 source ~/.bash_profile
-
Mac下的GOROOT通常会在安装完自动配置为GO开发包的安装路径
-
检查环境配置是否生效可以输入
go env
指令-
看到
GOPATH
符合你配置的内容即可
-
4.3.一些版本变动的小细节
在 Go 1.8 版本之前,GOPATH
环境变量默认是空的。从 Go 1.8 版本开始,Go 开发包在安装完成后会为 GOPATH
设置一个默认目录,参见下表。
GOPATH在不同操作系统平台上的默认值
平台 | GOPATH默认值 | 举例 |
---|---|---|
Windows | %USERPROFILE%/go | C:\Users\用户名\go |
Unix | $HOME/go | /home/用户名/go |
5.写个全世界都在用的程序
-
首先,来到你对应的
工作空间(workspace)
的src
目录下,创建一个hello
目录,并在目录下创建一个hello.go
文件或者创建一个.txt
文件再将尾缀修改为.go
-
Mac下指令如下
# 1.进入工作目录下的src目录 cd $GOPATH/src # 2.创建hello项目目录 mkdir hello # 3.进入hello目录 cd hello # 4.创建.go 文件 touch hello.go
-
得到的目录情况应当如下
-
-
其次我们要做的事情就是打开我们的
hello.go
文件,在还没安装IDE工具的情况下可以用文本编辑器打开,输入以下代码package main // 声明 main 包,表明当前是一个可执行程序 import "fmt" // 导入内置 fmt 包 func main(){ // main函数,是程序执行的入口 fmt.Println("Hello Let's GO!") // 在终端打印 Hello World! }
-
在
hello
这个项目目录下用命令行输入go build hello.go
这个指令对我们的代码进行构建-
指令执行成功后可以发现在对应的目录下会产生一个可执行文件,你可以直接点击可执行文件查看你的第一份Go代码
-
-
或者你可以再使用一下
go install
指令,这个指令表示安装的意思,它先编译源代码得到可执行文件,然后将可执行文件移动到GOPATH
的bin目录下。因为我们的环境变量中配置了GOPATH
下的bin目录,所以我们就可以在任意地方直接执行可执行文件了。-
可以去对应的
工作空间下的bin/目录下找到对应的可执行文件
-
-
除了可以直接点击可执行文件来运行我们的项目,我们还可以在我们的
hello.go
源码所在目录下尝试用go run hello.go
来执行我们的go源码,也是可以直接执行的-
go run
和go build
的区别为:go run 编译并直接运行程序,它会产生一个临时文件(但实际不存在,也不会生成 .exe 文件),直接在命令行输出程序执行结果,方便用户调试。运行速度也相应较慢 go build 用于测试编译包,主要检查是否会有编译错误,如果是一个可执行文件的源码(即是 main 包),就会在当前目录直接生成一个可执行文件( .exe 文件)。运行速度快
-
🏜写在最后
本文章内容主要分享且讲述了如何对Go语言开发环境进行配置,并且Go的目录结构解析,在此基础上完成了第一个Go语言程序,如有错误请指正!