soarli

搭建Go语言开发环境
下载Go官网下载地址:https://golang.org/dl/Go官方镜像站(推荐):https://gola...
扫描右侧二维码阅读全文
19
2022/02

搭建Go语言开发环境

下载

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

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

版本的选择

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

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

image-20220218155243167

Windows安装

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

将上一步选好的安装包下载到本地并按下图所示安装:

image-20220218160700297

image-20220218160747183

image-20220218161009590

image-20220218161024096

image-20220218155515791

Linux下安装

如果不是要在Linux平台敲go代码就不需要在Linux平台安装Go,我们开发机上写好的go代码只需要跨平台编译(详见文章末尾的跨平台编译)好之后就可以拷贝到Linux服务器上运行了,这也是go程序跨平台易部署的优势。

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

wget https://go.dev/dl/go1.17.7.linux-amd64.tar.gz

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

tar -zxvf go1.17.7.linux-amd64.tar.gz -C /usr/local  # 解压

如果提示没有权限,加上sudoroot用户的身份再运行。执行完就可以在/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.17.7 linux/amd64

Mac下安装

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

img

检查

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

image-20220218155812065

GOROOTGOPATH(不重要)

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

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(便于访问Google镜像和Github镜像)。

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

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

如果七牛的这个不可用还可以尝试使用百度的代理

image-20220218162101260

Go开发编辑器

这里使用VS Code(也可以选用Goland

VS Code常用快捷键:

安装go扩展并重启VS Code

VS Code编辑器安装Go扩展插件,让它支持Go语言开发。

image-20220218160406278

第一个Go程序

Hello World

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

go mod init

使用go module模式新建项目时,我们需要通过go mod init 项目名命令对项目进行初始化,该命令会在项目根目录下生成go.mod文件。例如,我们使用hello作为我们第一个Go项目的名称,执行如下命令。

go mod init hello

image-20220218161238232

编写代码

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

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

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

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

非常重要!!! 如果此时VS Code右下角弹出提示让你安装插件,务必点 install all 进行安装。

image-20220218161357020

image-20220218161748179

编译

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

hello目录下执行:

go build

成功编译出可执行程序hello.exe

image-20220218162245932

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

go build hello

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

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

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

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

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

go build -o heiheihei.exe

下述命令也可以执行程序,其本质也是先编译再执行。

go run main.go

下述命令表示安装的意思,它先编译源代码得到可执行文件,然后将可执行文件移动到GOPATHbin目录下。

因为我们的环境变量中配置了GOPATH下的bin目录,所以我们就可以在任意地方直接执行可执行文件了。

go install

WindowsVSCode切换cmd.exe作为默认终端

打开终端:

image-20220220021700025

点击终端右上角图示区域:

image-20220218162828823

cmd.exe结尾的这一项:

image-20220220021618291

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

跨平台编译

默认我们go build的可执行文件都是当前操作系统可执行的文件,Go语言支持跨平台编译——在当前平台(例如Windows)下编译其他平台(例如Linux)的可执行文件。

Windows编译Linux可执行文件

如果想在Windows下编译一个Linux下可执行文件,那需要怎么做呢?只需要在编译时指定目标操作系统的平台和处理器架构即可。

注意:无论你在Windows电脑上使用VsCode编辑器还是Goland编辑器,都要注意你使用的终端类型,因为不同的终端下命令不一样!!!目前的Windows通常默认使用的是PowerShell终端。

如果你的Windows使用的是cmd,那么按如下方式指定环境变量。

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

如果你的Windows使用的是PowerShell终端,那么设置环境变量的语法为

$ENV:CGO_ENABLED=0
$ENV:GOOS="linux"
$ENV:GOARCH="amd64"

在你的Windows终端下执行完上述命令后,再执行下面的命令,得到的就是能够在Linux平台运行的可执行文件了。

go build

Windows编译Mac可执行文件

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

cmd终端下执行:

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

PowerShell终端下执行:

$ENV:CGO_ENABLED=0
$ENV:GOOS="darwin"
$ENV:GOARCH="amd64"
go build

Mac编译Linux可执行文件

Mac系统编译得到Linux系统64位可执行程序:

CGO_ENABLED=0
GOOS=linux
GOARCH=amd64
go build

Mac编译Windows可执行文件

Mac系统编译得到Windows系统64位可执行程序:

CGO_ENABLED=0
GOOS=windows
GOARCH=amd64
go build

Linux编译Mac可执行文件

Linux系统下编译Mac系统64位可执行程序:

CGO_ENABLED=0
GOOS=darwin
GOARCH=amd64
go build

Linux编译Windows可执行文件

Linux系统下编译Windows系统64位可执行程序:

CGO_ENABLED=0
GOOS=windows
GOARCH=amd64
go build

参考资料:

https://learnku.com/go/t/43016

https://www.jianshu.com/p/82b55b516cc8

https://www.liwenzhou.com/posts/Go/install_go_dev/

https://www.liwenzhou.com/posts/Go/golang-menu/

最后修改:2022 年 02 月 20 日 02 : 23 AM

发表评论