写在前面:

Golang环境搭建很简单,Golang官网提供各种环境安装包,都是开箱即用型。

0x01 -- 安装

首先去官网(https://golang.org/doc/install#download)下载对应版本的安装包,我使用的是MacOS,如果需要其他系统的版本可以点击下载其他版本:

golang编译后需要环境支持吗(Golang之环境安装)(1)

官网下载

下载后可以直接安装,安装完成后可以通过命令行验证是否安装成功:

go version //go version Go1.17.1 darwin/amd64

0x02 -- 环境介绍

Golang安装成功后需要了解几个环境,GOROOT、GOPATH、GO111MODULE。想要知道这几个变量的当前值可以通过命令查看:

go env // 查看当前go环境变量

GOROOT

GOROOT就是Golang的安装目录,和JAVA_HOME类似,默认位置在/usr/local/go下(windows系统默认C:\go)。GOROOT目录结构如下:

golang编译后需要环境支持吗(Golang之环境安装)(2)

bin:go各种命令目录

pkg:一般存放平台相关包目录,同时编译后生成的文件也会存在此目录,如果GO11MODULE值为on,通过go get方式下载的包将保存在这个目录下

src:项目库目录,默认会包含go内置库如os、time等,我们自己的源代码一般放在GOPATH下的src目录

GOPATH

在go1.11版本之后go引入了新的包管理工具module,GOPATH也不再推荐使用了,但是建议还是稍微了解下,GOPATH可以说是一个开发者的工作区,主要有三个目录:

bin: go程序编译后二进制文件存放目录(注意区别goroot下bin)

pkg: 开发过程中自定义的包可以放在这个目录,go build等编译过程产生的的中间缓存文件也会存在这里

src:开发源代码存在目录,src下可以创建多个项目目录

GO111MODULE

在go1.16之前需要执行开启,命令如下:

go env -w GO111MODULE=on 打开 // go env -w GO111MODULE=off 关闭

最新版本的go默认是开启的,go111module有三个值:

on: 启动go mod,项目通过go.mod管理依赖包,go get下载的包将保存在GOPATH/pkg/mod下

off: 关闭go mod ,项目通过gopath寻找依赖包,go get下载的包将保存在GOPATH/src下

auto:只有项目识别到go.mod文件才会启用go mod

0x03 -- go控制台命令

Golang开发时会经常用到一些命令,开发者需要熟悉这些命令的使用方式,通过go --help可以获取go所有命令及描述信息,我就不一一解释其含义了,相信作为开发者的你完全可以get it:

Go is a tool for managing Go source code. Usage: go <command> [arguments] The commands are: bug start a bug report build compile packages and dependencies clean remove object files and cached files doc show documentation for package or symbol env print Go environment information fix update packages to use new APIs fmt gofmt (reformat) package sources generate generate Go files by processing source get add dependencies to current module and install them install compile and install packages and dependencies list list packages or modules mod module maintenance run compile and run Go program test test packages tool run specified go tool version print Go version vet report likely mistakes in packages Use "go help <command>" for more information about a command. Additional help topics: buildconstraint build constraints buildmode build modes c calling between Go and C cache build and test caching environment environment variables filetype file types go.mod the go.mod file gopath GOPATH environment variable gopath-get legacy GOPATH go get goproxy module proxy protocol importpath import path syntax modules modules, module versions, and more module-get module-aware go get module-auth module authentication using go.sum packages package lists and patterns private configuration for downloading non-public code testflag testing flags testfunc testing functions vcs controlling version control with GOVCS Use "go help <topic>" for more information about that topic.

0x04 -- 总结

Golang的环境搭建很直观很透彻,不过新入门的开发者需要了解下GOPATH、GOROOT、GOMOD的关系和区别,GOMOD是官方最新推荐的包管理工具所以后续会专门讲解下。

想要更加深入地了解各个环境变量对开发的影响,想要更加快速地进行开发,多多动手实践下,才能快速理解其中奥妙。

谢谢关注我的人,更多的关注量也是我持续写作的动力:)

,