1. 主页
  2. Go语言基础教程
  3. 从零开始搭建Go语言开发环境

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

本人开始在 B 站录制 Go 语言相关的视频了,后面会持续更新,包括但是不限于实战项目、原理剖析等。

感谢关注并对喜欢的视频一键三连。

可从 B 站搜索:”兰三石”。

或者直接点击此处 B 站视频传送门

最新1.14版本,一步一步,从零搭建Go语言开发环境。

安装Go语言及搭建Go语言开发环境

注意:Go语言1.14版本之后推荐使用go modules管理以来,也不再需要把代码写在GOPATH目录下了,之前旧版本的教程戳这个链接

下载

下载地址

Go官网下载地址:https://golang.org/dl/

Go官方镜像站(推荐):https://golang.google.cn/dl/

版本的选择

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

下图中的版本号可能并不是最新的,但总体来说安装教程是类似的。Go语言更新迭代比较快,推荐使用较新版本,体验最新特性。

1550814038938

安装

Windows安装

此安装实例以 64位Win10系统安装 Go1.11.5可执行文件版本为例。

将上一步选好的安装包下载到本地。

1550236584256

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

1550236819662
1550236972659
1550237077339

Linux下安装

我们在版本选择页面选择并下载好go1.11.5.linux-amd64.tar.gz文件:

wget https://dl.google.com/go/go1.11.5.linux-amd64.tar.gz

将下载好的文件解压到/usr/local目录下:

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是对当前用户生效的,根据自己的情况自行选择一个文件打开,添加如下两行代码,保存退出。

export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin

修改/etc/profile后要重启生效,修改$HOME/.profile后使用source命令加载$HOME/.profile文件即可生效。 检查:

~ go version
go version go1.11.5 linux/amd64

Mac下安装

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

Mac安装Go

检查

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

GOROOT和GOPATH

GOROOTGOPATH都是环境变量,其中GOROOT是我们安装go开发包的路径,而从Go 1.8版本开始,Go开发包在安装完成后会为GOPATH设置一个默认目录,参见下表。

GOPATH在不同操作系统平台上的默认值

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

我们只需要记住默认的GOPATH路径在哪里就可以了。

我们需要将 GOROOT下的bin目录及GOPATH下的bin目录都添加到环境变量中。

配置环境变量之后需要重启你电脑上已经打开的终端。(例如cmd、VS Code里面的终端和其他编辑器的终端)。

GOPROXY

Go1.14版本之后,都推荐使用go mod模式来管理依赖环境了,也不再强制我们把代码必须写在GOPATH下面的src目录了,你可以在你电脑的任意位置编写go代码。(网上有些教程适用于1.11版本之前。)

默认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

Go开发编辑器

Go采用的是UTF-8编码的文本文件存放源代码,理论上使用任何一款文本编辑器都可以做Go语言开发,这里推荐使用VS CodeGoland。 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

三大主流平台都支持,请根据自己的电脑平台选择对应的安装包。双击下载好的安装文件,双击安装即可。

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

配置

安装中文简体插件

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

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

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

VSCode主界面介绍:

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

安装go扩展

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

安装go扩展图

第一个Go程序

Hello World

现在我们来创建第一个Go项目——hello。在我们桌面创建一个hello目录。

在该目录中创建一个main.go文件:

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

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

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

go build

go build表示将源代码编译成可执行文件。

在hello目录下执行:

go build

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

go build hello

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

编译得到的可执行文件会保存在执行编译命令的当前目录下,如果是windows平台会在当前目录下找到hello.exe可执行文件。

可在终端直接执行该hello.exe文件:

c:\desktop\hello>hello.exe
Hello World!

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

go build -o heiheihei.exe

Windows下VSCode切换cmd.exe作为默认终端

如果你打开VS Code的终端界面出现如下图场景(注意观察红框圈中部分),那么你的VS Code此时正使用powershell作为默认终端:

vscode shell配置1

十分推荐你按照下面的步骤,选择cmd.exe作为默认的终端工具:

vscode shell配置2

此时,VS Code正上方中间位置会弹出如下界面,参照下图挪动鼠标使光标选中后缀为cmd.exe的那一个,然后点击鼠标左键。

最后重启VS Code中已经打开的终端或者直接重启VS Code就可以了。

vscode shell配置3

如果没有出现下拉三角,也没有关系,按下Ctrl+Shift+P,VS Code正上方会出现一个框,你按照下图输入shell,然后点击指定选项即可出现上面的界面了。

vscode shell配置4

补充说明:由于VS Code对go mod模式的支持暂时还不够完善,建议大家使用Goland编辑器。

go install

go install表示安装的意思,它先编译源代码得到可执行文件,然后将可执行文件移动到GOPATH的bin目录下。因为我们的环境变量中配置了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.

我们要如何帮助您?

发表回复

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

评论列表(7条)

  • chenzi_xs
    chenzi_xs 2021年9月2日 15:36

    想请教下,你这些语音都是通过什么方式变成自己的呢
    视频 还是网上找的资料
    我感觉自己学了好多python的视频,包括到高级编程,目前也能写,就是没谱,
    想做个东西就是写不出来,望能指点一二,不胜感激~!

    • 兰玉磊的头像
      兰玉磊 2021年9月2日 15:41

      @chenzi_xs语音?什么语音?抱歉没明白你说的啥意思?

    • chengzi_xs
      chengzi_xs 2021年9月2日 15:52

      @兰玉磊不好意思哈,是语言
      就是自学了好多好多python的视频,包括到高级编程,目前也能写,就是没谱,
      比方说我自己想做个东西出来,比喻说类似cmdb这样的,监控小工具 等等,
      不知道从哪里开始
      有没有技术群啥的,可供有效交流啊

    • 兰玉磊的头像
      兰玉磊 2021年9月2日 18:33

      @chengzi_xs么有技术交流群呢,这个东西呢,我其实也不知道咋说呢。如果语言技术基础有了的话,那么可以尝试去看看其他人的开源项目。

    • chengzi_xs
      chengzi_xs 2021年9月7日 11:17

      @兰玉磊这话看起来只有自己撑船渡自己呀 不能说没有基础 只能说经验不够 深度不够

    • 兰玉磊的头像
      兰玉磊 2021年9月7日 11:48

      @chengzi_xs对,非至亲之人,没有人会白白给你撑船,只能自己撑船渡自己。学习新东西、攒经验、挖深度不都得你自己来啊。再说了,你不自己渡你想让谁渡啊。

    • 兰玉磊的头像
      兰玉磊 2021年9月2日 15:44

      @chenzi_xs本系列文档,来自《李文周的博客》,想要学习的看文章的话,可在此处看,有其他问题,请跳转到 https://www.liwenzhou.com