搭建Go语言开发环境

搭建Go语言开发环境

微信搜索 zze_coding 或扫描 👉 二维码关注我的微信公众号获取更多资源推送:

环境准备

go 开发包下载地址

版本选择

Windows 平台和 Mac 平台推荐下载可执行文件版,Linux 平台下载压缩文件版。

我这里就使用 go 官方镜像站进行下载了,下图中的版本号是当前(2020-3-18)最新的,请选择适合自己的系统版本,我这里是 Mac OS 所以就选择第二项 Apple macOS。

image.png

安装

直接双击下载好的安装文件,继续就 OK 了。
image.png

安装程序流程走完后,在终端执行 go version 检查是否安装成功:

$ go version
go version go1.14 darwin/amd64

GOROOT 和 GOPATH

GOROOT 是我们安装 go 开发包的路径,而 GOPATH 是我们编写的代码以及代相关依赖模块存放的路径,而从 go 1.8 版本开始,go 开发包在安装完成后会为 GOPATH 设置一个默认目录,参见下表。

平台 GOPATH默认值 举例
Windows %USERPROFILE%/go C:\Users\用户名\go
Unix $HOME/go /home/用户名/go

如果要手动配置 GOPATH 路径,直接将 GOPATH 导出为环境变量即可:

$ vim ~/.bash_profile
export GOPATH="/Users/zhangzhongen/dev/go"

GOROOT 下的 bin 目录及 GOPATH 下的 bin 目录都添加到环境变量中,如下:

$ vim ~/.bash_profile
export PATH="$GOPATH/bin::$PATH"

Mac OS 版本的 go 开发包安装完毕后默认就将 GOROOT 目录下的 bin 目录添加到 PATH 变量了,所以我这里就不额外添加了。

配置完毕后检查当前的 go 环境:

$ go env | egrep 'GOPATH|GOROOT' -i
GOPATH="/Users/zhangzhongen/dev/go"
GOROOT="/usr/local/go"

然后我们还需在 GOPATH 下创建如下目录结构:

$ cd $GOPATH && mkdir {bin,pkg,src}

各目录的功用如下:

  • bin:存放编译后的二进制文件;
  • pkg:存放编译后的库文件;
  • src:存放源代码文件;

GOPROXY

go 1.14 版本之后,都推荐使用 go mod 模式来管理依赖环境了,也不再强制我们把代码必须写在 GOPATH 下面的 src 目录了,你可以在你电脑的任意位置编写 go 代码。

默认 GoPROXY 配置是:GOPROXY=https://proxy.golang.org,direct,由于国内访问不到 https://proxy.golang.org,所以我们需要换一个 PROXY,这里推荐使用 https://goproxy.iohttps://goproxy.cn

可以执行下面的命令修改 GOPROXY

$ go env -w GOPROXY=https://goproxy.cn,direct

IDE 选择

go 的源代码需存放在 UTF-8 编码的文本文件,理论上使用任何一款文本编辑器都可以做 go 语言开发,这里推荐使用 VS Code 和 Goland。VS Code 是微软开源的编辑器,而 Goland 是 jetbrains 出品的付费 IDE。

我们这里使用 VS Code 加插件做为 go 语言的开发工具。

下载与安装

VS Code 官方下载地址:https://code.visualstudio.com/Download

选择适合自己平台的安装包下载:
image.png

双击无脑下一步就完事儿了。

汉化

点击左侧菜单栏最后一项管理扩展,在搜索框中输入 chinese,选中结果列表第一项,点击 install 安装。

安装完毕后右下角会提示重启 VS Code,重启之后你的 VS Code 就显示中文啦!

vscode1

安装 go 扩展

现在我们要为我们的 VS Code 编辑器安装 Go 扩展插件,让它支持 Go 语言开发。
image.png

第一个 go 程序

现在我们来创建第一个 go 项目 —— hello。在我们的 GOPATH 下的 src 目录中创建 hello 目录。

代码编写

在该目录中创建一个 main.go 文件,内容如下:

package main  // 声明 main 包,表明当前是一个可执行程序

import "fmt"  // 导入内置 fmt 包

func main(){  // main函数,是程序执行的入口
	fmt.Println("Hello World!")  // 在终端打印 Hello World!
}

编译执行

我们需要使用 go build 将源代码编译成可执行文件。

hello 目录下执行:

$ go build

或者在其他目录执行以下命令:

go build hello

go 编译器会去 GOPATHsrc 目录下查找你要编译的 hello 项目。

编译得到的可执行文件会保存在执行编译命令的当前目录下,如下:

$ go build hello
$ ll
-rwxr-xr-x   1 zhangzhongen  staff  2169864  3 18 10:07 hello

可看到该文件是有执行权限,可以终端直接执行该 hello 文件:

$ hello 
Hello World!

我们还可以使用 -o 选项来指定编译后得到的可执行文件的名字:

$ go build -o hello2 hello

安装

可使用 go install 命令安装 go 程序,它先编译源代码得到可执行文件,然后将可执行文件移动到 GOPATHbin 目录下。因为我们的环境变量中配置了 GOPATH 下的 bin 目录,所以我们就可以在任意地方直接执行可执行文件了。

这里容易理解就不做演示啦~~

跨平台编译

默认我们 go build 的可执行文件都是当前操作系统可执行的文件,如果我想在 Windows 下编译一个 Linux 下可执行文件,那需要怎么做呢?

只需要指定目标操作系统的平台和处理器架构即可:

$ SET CGO_ENABLED=0  // 禁用CGO
$ SET GOOS=linux  // 目标平台是linux
$ SET GOARCH=amd64  // 目标处理器架构是amd64

使用了 cgo 的代码是不支持跨平台编译的。

然后再执行 go build 命令,得到的就是能够在 Linux 平台运行的可执行文件了。

Mac 下编译 Linux 和 Windows 平台 64 位可执行程序:

$ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
$ CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build

Linux 下编译 Mac 和 Windows 平台 64 位可执行程序:

$ CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build
$ CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build

Windows 下编译 Mac 平台 64 位可执行程序:

$ SET CGO_ENABLED=0
$ SET GOOS=darwin
$ SET GOARCH=amd64
$ go build

现在,开启你的 go 语言学习之旅吧。人生苦短,let’s go~~~

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://www.zze.xyz/archives/go-dev.html

Buy me a cup of coffee ☕.