查看: 195|回复: 0

从零开始搭建Go语言开发环境

[复制链接]
发表于 2020-2-19 03:52:43 | 显示全部楼层 |阅读模式
一步一步,从零搭建Go语言开发情况。
安装Go语言及搭建Go语言开发情况


下载

Go官网下载地址https://golang.org/dl/
Go官方镜像站(推荐):https://golang.google.cn/dl/
版本的选择

Windows平台和Mac平台推荐下载可执行文件版,Linux平台下载压缩文件版。
下图中的版本号可能并不是最新的,但总体来说安装教程是类似的。

安装

Windows安装

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

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



Linux下安装

我们在版本选择页面选择并下载好go1.11.5.linux-amd64.tar.gz文件:
  1. wget https://dl.google.com/go/go1.11.5.linux-amd64.tar.gz
复制代码
将下载好的文件解压到/usr/local目次下:
  1. mkdir -p /usr/local/go  # 创建目次tar -C /usr/local/go zxvf go1.11.5.linux-amd64.tar.gz. # 解压
复制代码
如果提示没有权限,加上sudo以root用户的身份再运行。执行完就可以在/usr/local/下看到go目次了。
配置情况变量: Linux下有两个文件可以配置情况变量,其中/etc/profile是对所有用户生效的;$HOME/.profile是对当前用户生效的,根据自己的情况自行选择一个文件打开,添加如下两行代码,生存退出。
  1. export GOROOT=/usr/local/goexport PATH=$PATH:$GOROOT/bin
复制代码
修改/etc/profile后要重启生效,修改$HOME/.profile后使用source命令加载$HOME/.profile文件即可生效。 查抄:
  1. ~ go versiongo version go1.11.5 linux/amd64
复制代码
Mac下安装

下载可执行文件版,直接点击下一步安装即可,默认会将go安装到/usr/local/go目次下。

查抄

上一步安装过程执行完毕后,可以打开终端窗口,输入go version命令,查看安装的Go版本。
配置GOPATH

GOPATH是一个情况变量,用来表明你写的go项目的存放路径(工作目次)。
GOPATH路径最好只设置一个,所有的项目代码都放到GOPATH的src目次下。
补充阐明:Go1.11版本之后,开启go mod模式之后就不再逼迫需要配置GOPATH了。
Linux和Mac平台就参照上面配置情况变量的方式将自己的工作目次添加到情况变量中即可。 Windows平台按下面的步骤将D:\code\go添加到情况变量:







在 Go 1.8 版本之前,GOPATH情况变量默认是空的。从 Go 1.8 版本开始,Go 开发包在安装完成后会为 GOPATH设置一个默认目次,参见下表。
GOPATH在差异利用系统平台上的默认值
平台GOPATH默认值举例Windows%USerpROFILE%/goC:\Users\用户名\goUnix$HOME/go/home/用户名/go同时,我们将 GOROOT下的bin目次及GOPATH下的bin目次都添加到情况变量中。
配置情况变量之后需要重启你电脑上已经打开的终端。(比方cmd、VS Code里面的终端和其他编辑器的终端)。
Go项目结构

在举行Go语言开发的时候,我们的代码总是会生存在$GOPATH/src目次下。在工程经过go build、go install或go get等指令后,会将下载的第三方包源代码文件放在$GOPATH/src目次下, 产生的二进制可执行文件放在 $GOPATH/bin目次下,生成的中间缓存文件会被生存在 $GOPATH/pkg 下。
如果我们使用版本管理工具(Version Control System,VCS。常用如Git)来管理我们的项目代码时,我们只需要添加$GOPATH/src目次的源代码即可。bin 和 pkg 目次的内容无需版本控制。
适合个人开发者

我们知道源代码都是存放在GOPATH的src目次下,那我们可以按照下图来组织我们的代码。

现在流行的项目结构

Go语言中也是通过包来组织代码文件,我们可以引用别人的包也可以发布自己的包,但是为了防止差异包的项目名冲突,我们通常使用顶级域名来作为包名的前缀,这样就不担心项目名冲突的问题了。
因为不是每个个人开发者都拥有自己的顶级域名,所以现在流行的方式是使用个人的github用户名来区分差异的包。

举个例子:张三和李四都有一个名叫studygo的项目,那么这两个包的路径就会是:
  1. import "github.com/zhangsan/studygo"
复制代码
  1. import "github.com/lisi/studygo"
复制代码
以后我们从github上下载别人包的时候,如:
  1. go get github.com/jmoiron/sqlx
复制代码
那么,这个包会下载到我们本地GOPATH目次下的src/github.com/jmoiron/SQLx。
适合企业开发场景


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。在我们的GOPATH下的src目次中创建hello目次。
在该目次中创建一个main.go文件:
  1. package main  // 声明 main 包,表明当前是一个可执行程序import "fmt"  // 导入内置 fmt 包func main(){  // main函数,是程序执行的入口        fmt.Println("Hello World!")  // 在终端打印 Hello World!}
复制代码
go build

go build表示将源代码编译成可执行文件。
在hello目次下执行:
  1. go build
复制代码
大概在其他目次执行以下命令:
  1. go build hello
复制代码
go编译器会去 GOPATH的src目次下查找你要编译的hello项目
编译得到的可执行文件会生存在执行编译命令的当前目次下,如果是windows平台会在当前目次下找到hello.exe可执行文件。
可在终端直接执行该hello.exe文件:
  1. d:\code\go\src\hello>hello.exeHello World!
复制代码
我们还可以使用-o参数来指定编译后得到的可执行文件的名字
  1. go build -o heiheihei.exe
复制代码
留意事项: 如果你打开VS Code的终端界面出现如了局景  
十分推荐你按照下面的步骤,选择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下可执行文件,那需要怎么做呢?
只需要指定目的利用系统的平台和处理器架构即可:
  1. SET CGO_ENABLED=0  // 禁用CGOSET GOOS=linux  // 目的平台是linuxSET GOARCH=amd64  // 目的处理器架构是amd64
复制代码
使用了cgo的代码是不支持跨平台编译的
然后再执行go build命令,得到的就是可以大概在Linux平台运行的可执行文件了。
Mac 下编译 Linux 和 Windows平台 64位 可执行程序:
  1. CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go buildCGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
复制代码
Linux 下编译 Mac 和 Windows 平台64位可执行程序:
  1. CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go buildCGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
复制代码
Windows下编译Mac平台64位可执行程序:
  1. SET CGO_ENABLED=0SET GOOS=darwinSET GOARCH=amd64go build
复制代码

转载自李文周博客

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?用户注册

x

相关技术服务需求,请联系管理员和客服QQ:2753533861或QQ:619920289
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

帖子推荐:
客服咨询

QQ:2753533861

服务时间 9:00-22:00

快速回复 返回顶部 返回列表