下载
Go官网下载地址:https://golang.org/dl/
Go官方镜像站(推荐):https://golang.google.cn/dl/
版本的选择
Windows平台和Mac平台推荐下载可执行文件版,Linux平台下载压缩文件版。
下图中的版本号可能并不是最新的,但总体来说安装教程是类似的。Go语言更新迭代比较快,推荐使用较新版本,体验最新特性。
Windows安装
此安装实例以 64位Win10
系统安装 Go1.17.7可执行文件版本
为例。
将上一步选好的安装包下载到本地并按下图所示安装:
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 # 解压
如果提示没有权限,加上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.17.7 linux/amd64
Mac下安装
下载可执行文件版,直接点击下一步安装即可,默认会将go安装到/usr/local/go
目录下。
检查
上一步安装过程执行完毕后,可以打开终端窗口,输入go version
命令,查看安装的Go
版本。
GOROOT
和GOPATH
(不重要)
GOROOT
和GOPATH
都是环境变量,其中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.io
或https://goproxy.cn
(便于访问Google
镜像和Github
镜像)。
可以执行下面的命令修改GOPROXY
:
go env -w GOPROXY=https://goproxy.cn,direct
如果七牛的这个不可用还可以尝试使用百度的代理:
Go开发编辑器
这里使用VS Code
(也可以选用Goland
)
VS Code
常用快捷键:
安装go扩展并重启VS Code
为VS Code
编辑器安装Go
扩展插件,让它支持Go语言开发。
第一个Go程序
Hello World
现在我们来创建第一个Go项目——hello
。在我们桌面创建一个hello
目录。
go mod init
使用go module
模式新建项目时,我们需要通过go mod init 项目名
命令对项目进行初始化,该命令会在项目根目录下生成go.mod
文件。例如,我们使用hello
作为我们第一个Go项目的名称,执行如下命令。
go mod init hello
编写代码
接下来在该目录中创建一个main.go
文件:
package main // 声明 main 包,表明当前是一个可执行程序
import "fmt" // 导入内置 fmt 包
func main(){ // main函数,是程序执行的入口
fmt.Println("Hello World!") // 在终端打印 Hello World!
}
非常重要!!! 如果此时VS Code
右下角弹出提示让你安装插件,务必点 install all 进行安装。
编译
go build
命令表示将源代码编译成可执行文件。
在hello
目录下执行:
go build
成功编译出可执行程序hello.exe
:
或者在其他目录执行以下命令:
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
下述命令也可以执行程序,其本质也是先编译再执行。
go run main.go
下述命令表示安装的意思,它先编译源代码得到可执行文件,然后将可执行文件移动到GOPATH
的bin
目录下。
因为我们的环境变量中配置了GOPATH
下的bin
目录,所以我们就可以在任意地方直接执行可执行文件了。
go install
Windows
下VSCode
切换cmd.exe
作为默认终端
打开终端:
点击终端右上角图示区域:
选cmd.exe
结尾的这一项:
随后重启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/
版权属于:soarli
本文链接:https://blog.soarli.top/archives/628.html
转载时须注明出处及本声明。