Go 语言环境安装

跨平台特性

Go语言和Java,Python一样,也是支持跨平台的。另外,Go语言还有黑科技:支持跨平台编译。比如你手头只有Mac系统,而你的用户有Linux和Windows的,他们也想使用你的Go语言程序,你可以通过交叉编译出Linux和Windows上的可执行文件给他们。另外,你甚至可以在32位平台的机器上以编译生成64位平台上的可执行程序。

Windows下安装

go语言中国官方下载地址:https://studygolang.com/dl。 然后在这里找到对应的windows安装包,最新版是go1.4.windows-amd64.msi这个文件,一路Next安装即可。安装完毕后重启电脑,在cmd控制台下输入:

go version

 如果打印出:

go version go1.4 windows/amd64

则证明安装成功!

Linux下安装

1.安装 C 工具

Go 的工具链是用 C 语言编写的,因此在安装 Go 之前你需要先安装相关的 C 工具。如果你使用的是 Ubuntu 的话,你可以在终端输入以下指令( 译者注:由于网络环境的特殊性,你可能需要将每个工具分开安装 )。

sudo apt-get install bison ed gawk gcc libc6-dev make

你可以在其它发行版上使用 RPM 之类的工具。

2.go语言官方下载地址:https://golang.org/dl。 然后在这里找到对应的Linux安装包,最新版是go1.9.2.linux-amd64.tar.gz这个文件,然后执行以下命令解压:

mkdir /home/go
mkdir /home/gopath
tar -C /home -xzvf go1.4.linux-amd64.tar.gz

我们在 Linux 系统下一般通过文件 $HOME/.bashrc 配置自定义环境变量,根据不同的发行版也可能是文件$HOME/.profile,然后使用 gedit 或 vi 来编辑文件内容。

接下来修改系统配置文件,执行命令:

vi ~/.bashrc

加入以下内容:

export GOROOT=/home/go

# 为了确保相关文件在文件系统的任何地方都能被调用,你还需要添加以下内容: export PATH
=$PATH:$GOROOT/bin

# 在开发 Go 项目时,你还需要一个环境变量来保存你的工作目录。
# $GOPATH 可以包含多个工作目录,取决于你的个人情况。
# 如果你设置了多个工作目录,那么当你在之后使用 go get(远程包安装命令)时远程包将会被安装在第一个目录下。 export GOPATH
=/home/gopath
# 配置启用Go Modules
export GO111MODULE=auto
export GOPROXY=https://goproxy.cn,direct

然后执行:

source ~/.bashrc

让配置文件生效。

然后打开Terminal,输入:

go version

如果打印出:

go version go1.4 linux/amd64

则证明安装成功!

七牛云为中国的gopher提供了一个免费合法的代理goproxy.cn,其已经开源。只需一条简单命令就可以使用该代理:

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

GOROOT和GOPATH区别

GOROOT是Go语言的安装目录,类似于JAVA中的JAVA_HOME。

GOPATH是你代码中的引用的包所在的位置,可以看成是工程目录,可以设置多个。

测试使用go mod

在不使用go mod情况下,我们的项目必须要放在GOPATH路径下(如果不是工程文件,只是一个简单的main.go文件则不需要设置,直接编译运行即可),不然会在代码中 import "包路径" 会出现问题。但是引入 go module管理包,就不需要项目工程必须在GOPATH路径了。

1. 初始化。在非GOPATH路径创建项目

go mod init 目录名

注意:必须进入项目目录,目录名是当前所在项目的目录名字。执行成功,生成 go.mod 文件。

2. 开始使用。比如代码使用了GitHub某个包,这里测试一个G站上的测试包,代码如下:

package main
 
import (
        api "github.com/tuweiguang/GoTestLib/api"
)
 
func main() {
    api.MyApi()
}
[root@localhost hello]# go run test.go 
go: finding github.com/tuweiguang/GoTestLib v0.0.5
go: downloading github.com/tuweiguang/GoTestLib v0.0.5
go: extracting github.com/tuweiguang/GoTestLib v0.0.5
this is MyApi
this is MyApi2
this is MyApi3
this is MyApi4
this is MyApi5
this is MyApi6
[root@localhost hello]# ls
go.mod  go.sum  test.go

go.mod 与 go.sum

go.mod 中会记录当前项目的所依赖

go.sum记录每个依赖库的版本和哈希值

详情请看:go module基本使用

原文地址:https://www.cnblogs.com/niuben/p/12269165.html