下载安装配置

275 阅读3分钟

go的环境配置Mac与Linux大同小异,Windows的基本逻辑也是一样的,下边以linux环境为例。 Linux环境下:

下载地址:

官方地址,不好访问:
golang.org/dl/
镜像网
gomirrors.org/
国内访问
golang.google.cn/dl/
学习网
studygolang.com/dl
查询packages
pkg.go.dev/

下载

# 在家目录下下载golang的安装包
cd 
wget https://studygolang.com/dl/golang/go1.16.linux-amd64.tar.gz

# 然后把tar报解压到/usr/local/,我一般使用的是这个目录,根据自己的爱好选择安装的目录
sudo tar -zxvf go1.16.linux-amd64.tar.gz -C /usr/local/

# 安装成功后删除
rm -rf go1.16.linux-amd64.tar.gz

配置在GOPATH下开发的工作目录

cd ~
# GOPATH下开发必须要在GOPATH下新建src目录,在src下新建项目开发
# pkg 相当于项目依赖的本地公共仓库,下载的依赖会放到这个文件夹
# bin 存放go 编译后的二进制文件的默认目录,因为下面会把文件这个目录添加到PATH中,所以编译后的二进制命令可以全局使用
mkdir -p go/{bin,pkg,src}
#在下目录的 ~/.bashrc 或者 ~/.zshrc 添加下面的环境变量
export GOROOT=/usr/local/go                              # 安装目录。
export GOPATH=$HOME/go                                   # 工作环境
export GOBIN=$GOPATH/bin                                 # 这个我一般不设定
export PATH=$GOPATH:$GOPATH/bin:$GOROOT/bin:$PATH        # 添加PATH路径

source ~/.bashrc 
#或者
source ~/.zshrc

go env

根据GO111MODULE的取值,工作目录可以放到不同的目录下,可以看的出go mod 是从go1.11以后才开始使用的,所以公司的项目如果是之前的版本,可以使用其他的包管理方式,网上很多,可以直接问度娘

cd ~
mkdir -p go/{bin,pkg,src}
#在下目录的 ~/.bashrc 或者 ~/.zshrc 添加下面的环境变量
export GOROOT=/usr/local/go                              # 安装目录。
export GOPATH=$HOME/go                                   # 工作环境
export GOBIN=$GOPATH/bin                                 # 这个我一般不设定
export PATH=$GOPATH:$GOPATH/bin:$GOROOT/bin:$PATH        # 添加PATH路径
export GO111MODULE=on                                    # on auto off 脱离gopath限制
# 重点,这个取值会直接影响你项目的编译
# on 在任何的项目目录下设置go.mod文件 
# auto 自动识别项目的目录
# off 的意思就是关闭mod支持,在gopath下开发使用
export GOPROXY=https://goproxy.io,direct                 # 设置代理,因为好多项目依赖可能在国外,无法正常的下载

source ~/.bashrc 
#或者
source ~/.zshrc

go env

# go version

对于有些临时使用编译项目的我们可以使用下面命令

# 打开一个shell终端,执行下面的命令,下面的命令只针对当前的shell有效,如果关闭了,再次打开需要再次执行
export GO111MODULE=on
export GOPROXY=https://goproxy.io,direct

# 下面的命令也会生效,但是会全局的写入到区局的文件,所以个人实际开发体验后不太推荐,感觉不够灵活,我们可以使用配置文件的方式,等慢慢熟悉了以后随意更改前期我们可以暂时的不这样使用
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct

go env                 # 打印Go所有默认环境变量
go env GOPATH          # 打印某个环境变量的值


交叉编译

什么是交叉编译?所谓的交叉编译,是指在一个平台上就能生成可以在另一个平台运行的代码,例如,我们可以32位的Windows操作系统开发环境上,生成可以在64位Linux操作系统上运行的二进制程序。

在其他编程语言中进行交叉编译可能要借助第三方工具,但在Go语言进行交叉编译非常简单,最简单只需要设置GOOS和GOARCH这两个环境变量就可以了。

go env GOOS GOARCH
# 在mac终端中执行,下面的命令我们就可以生成linux的二进制命令
GOOS=linux GOARCH=amd64 go build main.go

现在已经可以愉快的编程了!!!!!!!!!!!!!!!!!@@@@@@@