一、开发环境搭建
1. 下载 SDK
1 // Go官网下载地址 2 https://golang.org/dl/ 3 4 // Go官方镜像站(推荐) 5 https://golang.google.cn/dl/
2. 安装
由于Go语言是一门跨平台的编译型语言,我们只需要在一个平台下进行开发,最后根据要运行的平台进行对应的编译,就可以直接在对应的平台上运行项目了。下面我们主要介绍一下Go语言在 Windows 环境上的安装过程:
-
第一步,下载Go语言安装包到本地
-
第二步,傻瓜式安装,疯狂下一步,期间可以选择安装的路径
-
第三步,按照上述步骤安装完成后,打开终端,输入
go version
命令,如果能查看到相关的信息,证明安装成功。
3. 配置环境变量
打开终端输入命令 go env
可以查看安装 SDK 完成后的相关环境配置信息,其中我们需要重点关注一下框出来的几个配置项:
相关配置项说明:
-
GO111MODULE: 是否用
go mod
模式来管理项目的依赖 -
GOROOT:go的安装路径,需要把安装目录的
bin
级目录配置到计算机的系统环境变量中,才能全局使用 go 指令
-
GOPATH:项目代码存放的路径,目录可自定义,需要在计算机的系统环境变量中进行配置,后期工程代码以及下载的依赖都会存放在这个目录下
-
GOPROXY:镜像源,用于下载三方依赖,默认值是:
GOPROXY=https://proxy.golang.org,direct
,但国内访问不到,建议改成以下值:
https://goproxy.io 或 https://goproxy.cn
由于从 Go1.11 版本之后,项目结构有了很大的改动,环境配置项的作用也不一样,因此环境变量配置有一些差异:
3.1 GO 1.11 版本之前的环境配置
GO 1.11 之前版本规定了我们的代码要写在固定的位置,因此必须要配置一个GOPATH
,配置好后,我们还需要在 GOPATH
对应的目录下(新建以下几个文件夹,以后我们所有的代码都必须写在 src
目录中:
3.2 GO 1.11 版本及之后版本的环境配置
Go 1.11 版本之后,推荐使用 go mod
模式来管理依赖环境,不再强制配置 GOPATH
。在安装完 GO 软件包后,会给 GOPATH
设置一个默认目录,且默认情况下 GOROOT
下的 bin
目录及 GOPATH
下的 bin
目录都已经添加到环境变量中了,我们也不需要额外配置了;此外我们也不用把代码必须写在GOPATH
下面的 src
目录下了,可以在电脑的任意位置编写 GO 代码。
简而言之,在 1.11 版本后,我们不需要再关注和配置 GOROOT
和 GOPATH
这两个环境变量了,安装完成之后,我们只需要配置一下 GO111MODULE
和 GOPROXY
两项即可。实际上安装完新版本的软件包后,GO111MODULE
都是默认开启的,我们真正需要配置的只有 GOPROXY
。
二、第一个Go语言程序
我们随意在某个目录下新建一个 hello
文件夹,在 hello
目录中新建一个 main.go
文件,并输入以下代码
1 package main // 声明 main 包,表明当前是一个可执行程序,一个项目中只能有一个main包 2 3 import "fmt" // 导入内置 fmt 包 4 5 func main() { // main函数,是程序执行的入口 6 fmt.Println("hello world !") 7 }
在终端中进入 hello
目录,输入 go build
命令对代码进行编译,编译通过后会在同级目录下生成一个可执行文件:
直接运行 exe 程序就可以看到代码实现的功能了:
三、Go 常用命令
-
go help
go help
可以查询 go 常用的命令:
-
go build
go build
表示将源代码编译成可执行文件。不同平台下编译得到的可执行文件类型不一样,windows下的是 exe 类型文件。可以通过添加 -o
参数来指定编译过后的文件名,例如:
go build -o helloworld.exe
-
go install
go install
表示安装的意思,它先编译源代码得到可执行文件,然后将可执行文件移动到 GOPATH
的bin目录下。因为我们的环境变量中配置了GOPATH
下的bin目录,所以我们就可以在任意地方直接执行可执行文件了。
-
go run
go run
命令可以像执行脚本一样直接执行 .go
文件,且不会产生编译后的 .exe
文件,例如:
go run main.go
-
go fmt
go fmt
命令可以快速格式化代码,例如:
go fmt main.go
四、跨平台编译
默认 go build
得到的可执行文件都是当前操作系统下的,如果我想在windows下编译一个linux下可执行文件,那需要怎么做呢?
只需要指定目标操作系统的平台和处理器架构即可,然后再执行go build
命令,就可以编译得到目标操作系统对应的可执行文件了
# Windows下编译得到Linux 64位可执行程序 SET CGO_ENABLED=0 // 禁用CGO,使用了cgo的代码是不支持跨平台编译的 SET GOOS=linux // 目标平台是linux SET GOARCH=amd64 // 目标处理器架构是amd64 # Windows下编译得到Mac 64位可执行程序 SET CGO_ENABLED=0 SET GOOS=darwin SET GOARCH=amd64
其余操作系统转换编译命令如下:
# Mac下编译得到Linux可执行程序 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 # Mac下编译得到Windows 64位可执行程序 CGO_ENABLED=0 GOOS=windows GOARCH=amd64 # Linux下编译得到Mac可执行程序 CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 # Linux下编译得到Windows 64位可执行程序 CGO_ENABLED=0 GOOS=windows GOARCH=amd64
文章评论