Go语言环境配置

下载安装

国内的Go下载站点,根据自己的系统选择对应的版本进行下载安装:

https://studygolang.com/dl

Go的安装方式除了源码安装,其他的都相当简单,就不过多的赘述了。

环境变量

下面介绍下Go语言中需要设置的一些环境变量,具体如何设置这些环境变量,请自行搜索设置方式。

另外系统的不同,设置的方式也不相同。

GOROOT

GOROOT是Go语言的安装目录。

Windows中,GOROOT的默认位置是C:/go,而在Mac OS或者LinuxGOROOT的默认位置是/usr/local/go,如果Go安装在其他目录,而需要将GOROOT的位置修改为对应的目录。

另外,GOROOT/bin下包含Go为我们提供的工具链,因此应该将GOROOT/bin配置到环境变量PYTH中,方便我们在全局中使用Go的工具链。

GOPATH

GOPATH是Go语言的工作目录。

go install/go get和 go的工具等会用到GOPATH环境变量。

GOPATH是作为编译后二进制的存放目的地和import包时的搜索路径。

GOPATH主要包含三个目录: binpkgsrc

  • bin:主要存放可执行文件。
  • pkg:存放编译好的库文件, 主要是*.a文件。
  • src:下主要存放go的源文件。

此外还需要注意的是不要讲GOROOT设置城Go语言的路径,避免出现不必要的冲突。

GOPATH可以设置多个工作区,不过当我们使用go get命令去获取远程库的时候,一般会安装到第一个工作区当中。

GOBIN

GOBIN是我们在开发程序编译后二进制命令的安装目录。

当我们使用go install命令编译和打包应用程序时,该命令会将编译后的二进制程序打包GOBIN目录,一般我们将GOBIN设置为GOPATH/bin

GOOS与GOARCH

GOOSGOARCH是当需要进行跨平台编译的时候,需要设置的环境变量,这种编译方式叫做交叉编译。

所谓的交叉编译,是指在一个平台上就生成可以在另外一个平台上运行的代码,例如我们可以在32位的Windows操作系统上开发,然后生成可以在64位的Linux操作系统上运行的二进制进程。

  • GOOS:它的默认值是我们当前的操作系统,例如Windows、Linux,但是需要注意的是Mac OS的对应值是darwin。
  • GOARCH:表示CPU的架构,如386,amd64,arm等。

可以通过go env来获取当前GOOSGOARCH的值。

GOOSGOARCH的取值范围。

GOOSGOARCH的值成对出现,而且只能是下面列表对应的值。

编译在64位Linux操作系统上运行的目标程序

编译arm架构Android操作上的目标程序

所有环境变量列表

虽然我们一般虽然配置的环境变量就那么几个,但其实Go语言是提供了非常多的环境变量,让我们可以自由地定制开发和编译器行为。

下面是Go提供的所有的环境变量列表,一般可以划分为下面几大类,大概了解一下就可以了,因为有些环境变量我们可以永远都不会用到。

和cgo一起使用的环境变量

与系统架构体系相关的环境变量

专用的环境变量

其他环境变量

目录结构

目前流行的项目结构

推荐编辑器

Go采用的是UTF-8编码的文本文件存放代码的,理论上使用任何一款文件编辑器都可以做Go语言开发,这里主要推荐两个开发工具。

VS Code

Visual Studio Code(简称VS Code)是一个由微软开发的,同时支持Windows、Linux、和macOS系统且开放源代码的代码编辑器,它支持测试,并内置了Git 版本控制功能,同时也具有开发环境功能,例如代码补全(类似于 IntelliSense)、代码片段、和代码重构等,该编辑器支持用户个性化配置,例如改变主题颜色、键盘快捷方式等各种属性和参数,还在编辑器中内置了扩展程序管理的功能。

虽然不如一些IDE功能强大,但是它添加Go扩展插件后已经足够胜任我们日常的Go开发工作了,而且它占用资源较少,所以就算配置较低的电脑也可以使用。

Goland

喜欢用IDE做开发的同学必定不能错过Jetbrains家族的IDE,款款精品,可谓都是IDE中的神兵利器。

下面介绍的就是Jetbrains家族中开发Go语言的Goland。

Goland是付费的,当然网上也会有一些激活码可以直接激活使用,但是个人认为,如果条件允许的话,希望购买正版,若是不愿意付费的话,建议使用VS Code也可满足正常开发需求。

本文为原创文章,未经授权禁止转载本站文章。
原文出处:兰玉磊的个人博客
原文链接:https://www.fdevops.com/2020/03/08/go-locale-configuration
版权:本文采用「署名-非商业性使用-相同方式共享 4.0 国际」知识共享许可协议进行许可。

发表评论

电子邮件地址不会被公开。 必填项已用*标注