Golang-开发环境搭建、Hello World

PS 参考博文,致谢 :https://www.liwenzhou.com/posts/Go/install_go_dev/

一、安装Go开发包

1.1、下载地址

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

1.2、版本的选择

  • Windows平台和Mac平台推荐下载可执行文件版,Linux平台下载压缩文件版。
  • 下图中的版本号可能并不是最新的,但总体来说安装教程是类似的。Go语言更新迭代比较快,推荐使用较新版本,体验最新特性。

image

1.3、安装

1.3.1、Windows

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

image

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

image
image
image
image
image

1.3.2、Mac

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

image
image

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

image

1.3.3、Linux

  • 如果不是要在Linux平台敲go代码就不需要在Linux平台安装Go,我们开发机上写好的go代码只需要跨平台编译(详见文章末尾的跨平台编译)好之后就可以拷贝到Linux服务器上运行了,这也是go程序跨平台易部署的优势。
  • 我们在版本选择页面选择并下载好go1.14.1.linux-amd64.tar.gz文件:
# wget https://dl.google.com/go/go1.14.1.linux-amd64.tar.gz
  • 将下载好的文件解压到/usr/local目录下:
# tar -zxvf go1.14.1.linux-amd64.tar.gz -C /usr/local  # 解压
  • 如果提示没有权限,加上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.14.1 linux/amd64

二、GOROOT和GOPATH

  • GOROOT和GOPATH都是环境变量,其中GOROOT是我们安装go开发包的路径,而从Go 1.8版本开始,Go开发包在安装完成后会为GOPATH设置一个默认目录,并且在Go1.14及之后的版本中启用了Go Module模式之后,不一定非要将代码写到GOPATH目录下,所以也就不需要我们再自己配置GOPATH了,使用默认的即可。
  • 常见系统的GOPATH默认值参见下表。

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

  • 可以通过以下方法查看默认的GOPATH目录:

image
image
image
image
image

  • 通常来说,我们只需要记住默认的GOPATH路径在哪里就可以了,并且默认情况下 GOROOT下的bin目录及GOPATH下的bin目录都已经添加到环境变量中了,我们也不需要额外配置了。

  • 配置完GOPATH后需要在项目目录下创建以下三个目录,然后并将 bin目录也添加到环境变量中:

# Mac OS Example
daizhe@daizhedeMacBook-Pro GolangProjects % pwd
/Users/daizhe/Desktop/GolangProjects
daizhe@daizhedeMacBook-Pro GolangProjects % mkdir {bin,pkg,src}
daizhe@daizhedeMacBook-Pro GolangProjects % ls
bin	pkg	src

# src  存放源码
# pkg 存放中间状态包
# bin 存放编译完成的二进制包

export PATH="/usr/local/go/bin:$PATH"
export PATH="/Users/daizhe/Desktop/GolangProjects/bin:$PATH"

2.1、GOPROXY 非常重要

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

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

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

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

2.2、Go项目结构

  • 在进行go语言的开发的时候,代码总是会保存在 $GOPATH/src。在工程经过go buildgo installgo get 等指令后,会将下载的第三方包源代码文件存在 $GOPATH/src 目录下,产生的二进制可执行文件存在 $GOPATH/bin 目录下,生成的中间缓存文件会保存在 $GOPATH/pkg下;
  • 如果我们使用版本管理工具 (Version Control System, VCS,如GIT) 来管理我们的项目代码时,我们只需要添加 $GOPATH/src 目录的源代码即可;binpkg目录的内容无需版本控制;

2.3、适合个人开发者

  • 切记源代码是存放在$GOPATH/src, 所以我们可以照下图组织代码;

image

2.4、目前流行的项目结构

  • Go语言中也是通过包来组织代码文件,我们可以引用别人的包可以发布自己的包,但是为了防止不同的项目名冲突,我们常使用顶级域名来作为包名的前缀,这样就不用担心项目名冲突的问题了;

image

  • 举例:张三和李四都有一个名叫 studygo的项目,那么这两个包的路径就会是:
# zhangsan
import "toptops.top/zhangsan/studygo"

# lisi
import "toptops.top/lisi/studygo"
  • 以后我们从git下载人家的包的时候如:
# go get toptops.top/lisi/studygo
  • 那么这个包会下载到我们 GOPATH 目录下的 src/toptops.top/lisi/studygo

2.5、适合企业开发者

image

三、Go开发编辑器

  • Go采用的是UTF-8编码的文本文件存放源代码,理论上使用任何一款文本编辑器都可以做Go语言开发,这里推荐使用VS CodeGoland。 VS Code是微软开源的编辑器,而Goland是jetbrains出品的付费IDE。
  • 我们这里使用VS Code 加插件做为go语言的开发工具。

3.1、VS Code介绍

  • VS Code全称Visual Studio Code,是微软公司开源的一款免费现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、GIT 等特性,支持插件扩展,支持 Win、Mac 以及 Linux平台。
  • 虽然不如某些IDE功能强大,但是它添加Go扩展插件后已经足够胜任我们日常的Go开发。

3.2、下载与安装

image

3.2、配置

  • 安装中文简体插件
  • 点击左侧菜单栏最后一项管理扩展,在搜索框中输入chinese ,选中结果列表第一项,点击install安装。
  • 安装完毕后右下角会提示重启VS Code,重启之后你的VS Code就显示中文啦!

image

  • VSCode主界面介绍:

image

3.3、安装go扩展

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

image

  • 如果VS Code右下角弹出提示安装插件,主要你按如下方式配置了GOPROXY
# go env -w GOPROXY=https://goproxy.cn,direct
  • 就可以点击弹窗上的install all进行安装;

四、Go Hello World

4.1、Hello World

  • 创建第一个Go项目——hello。在我们桌面创建一个hello目录。
  • 在该目录中创建一个main.go文件:
package main  // 声明 main 包,表明当前是一个可执行程序

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

// 函数外只能声明 标识符即(变量、常量、函数、类型)

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

4.2、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

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

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

image
image

  • 此时,VS Code正上方中间位置会弹出如下界面,参照下图挪动鼠标使光标选中后缀为cmd.exe的那一个,然后点击鼠标左键。
  • 最后重启VS Code中已经打开的终端或者直接重启VS Code就可以了。

image

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

image

4.4、go install

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

4.5、go run

  • 像执行脚本文件一样执行Go代码
% go run ../src/gitee.com/Dz6666/01-Golang入门/main.go

4.6、跨平台编译

  • 默认我们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
posted @ 2021-05-28 12:44  SRE运维充电站  阅读(219)  评论(0编辑  收藏  举报