GO语言环境的搭建教程 - 完全指南

silverwq
2022-05-11 / 1 评论 / 1,003 阅读 / 正在检测是否收录...

sdk 安装

下载 sdk

sdk 的全称是:software development kit 软件开发工具包,没有这个,代码开发的时候,代码编译不了。

下载地址:https://studygolang.com/dl,官网是 https://golang.org/ 国内无法打开。

选择版本的时候注意:

  1. 386 代表 32 位系统
  2. amd 64 代表 64 位系统

解压

解压到指定的目录,目录最好不要有中文、空格、特殊符号啥的。

环境变量配置

linux 下配置,在 /etc/profile 文件末尾(这个文件相当于 window 的环境变量)添加以下语句

export GOROOT=/lnmp/go # 指定SDK的目录
export GOPATH=/lnmp/www/go/goPath # 工作目录
PATH=$PATH:$GOROOT/bin:$GOPATH/bin # 添加到PATH

window 的用户环境变量里配置

变量 说明
GOPATH D:\project\go\goPath 新建变量
GOROOT D:\program\go 新建变量
PATH %GOROOT%\bin;%GOPATH%\bin 追加环境变量
GOCACHE D:\project\go\goCache
GOENV D:\project\go\goEnv
GOPROXY https://goproxy.cn 代理
GOTMPDIR D:\project\go\goTempDir 编译运行时候的临时目录,可以改到其他目录
GOPRIVATE *. dianchu. cc 私有包

idea 环境配置

设置 goroot 路径

lrdb21p4.png

设置 gopath 路径

lrdb4syr.png

sdk 目录结构

sdk 目录结构包含以下这些:

  1. api 目录,是每个版本的更新日志
  2. bin 目录,自带的程序
    1. go.exe,用于编译程序等
    2. gofmt.exe,用于格式代码等
  3. doc 目录,官方帮助文档
  4. lib 目录,额外引用
  5. misc 目录,代理目录
  6. pkg 目录,打包文件夹
  7. src 目录,标准库源码
  8. text 目录,测试文件夹

bin/gofmt. exe 程序

输出文件的格式化代码

gofmt main.go

格式化这个文件

gofmt -w main.go

bin/go. exe 程序

go build

用于编译生成二进制文件。

编译文件,二进制文件的名称默认是文件的名称

go build main.go
# 如果main包里有多个文件,需要都补充上去
go build main.go a.go

编译目录,二进制的名称就是目录的名称

go build
go build ./

-o 指定生成二进制文件名称

go build -o main.exe main.go
go build -o main.exe

go run

直接运行源文件,

# 在main包目录下执行
go run .

如果 main 包有多个文件的话需要按下面的这种方式执行,不然无法引用到其他包的代码

go run main.go main包其他的文件.go ...

go version

查看版本

go version

go env

查看环境变量

go env

修改环境变量

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

常用的环境变量有:

  1. GOPROXY 设置代理地址。默认情况下,是从 github 上等 vsc 上下载。不过可以设置 GOPROXY 变量,改为从代理服务器上下载。可以设置是多个,先从第一个下载,如果失败再从第二个下载。
    1. GOPROXY=https://proxy.golang.org,https://goproxy.cn,direct
  2. GONOPROXY 设置不走代理。设置了代理地址,默认所有包都要经过代理服务器,但是有些私有的内网包,不能走七牛云代理服务器,所以对私有包地址需要设置不走代理。
    1. GONOPROXY=gitlab.xiaoqiuyinboke.cc
  3. GONOSUMDB 设置不对包进行 hash 校验。私有模块的哈希值也不会在 checksum database 中存在,所以 hash 校验的时候需要排除。
    1. GONOSUMDB=*.xiaoqiuyinboke.cc
  4. GOPRIVATE 设置私有包地址。设置了这个环境变量,它的值将作为 GONOPROXY 和 GONOSUMDB 的默认值。
    1. GOPRIVATE="*.xiaoqiuyinboke.cc"

go install

使用 go build 编译生成二进制文件会在当前目录,go install 会生成二进制文件到 goPath/bin 目录

go install

go get

下载的包会被下载到 :

  1. go mod 模式下:在 goPath\pkg\mod 目录下。
  2. go path 模式下:在 goPath 目录下,不推荐,了解即可。

下载包,需要注意的是,包地址不需要带有 http 开头

下载最新稳定版本依赖包

go get golang.org/x/text@latest
go get golang.org/x/text

下载指定 tag 版本

go get golang.org/x/text@v0.3.2

下载前缀为0的最新版本

go get golang.org/x/text@v0

下载小于0.3.2的最新版本

go get "golang.org/x/text@<v0.3.2"

下载大于0.3.2的最旧版本

go get "golang.org/x/text@>v0.3.2"

更新包

升级到最新版本

go get -u  github.com/robfig/cron

升级到指定版本

go get -u  github.com/robfig/cron@v1.1.0

go mod

获取所有的指令

go mod help

初始化项目,需要指定项目名称:

go mod init helloWorld
# to initialize a v0 or v1 module
go mod init example.com/m
# to initialize a v2 module
go mod init example.com/m/v2

如果有导入路径注释,不需要指定项目模块名称,使用注释作为模块名:

package hello // import "github.com/marmotedu/gopractise-demo/modules/hello"

如果没有导入路径注释,并且项目位于 GOPATH 路径下,初始化时候也可以没有模块名称,模块名默认为绝对路径去掉 $GOPATH/src 后的路径名。

整理依赖

  1. 当某个依赖一开始被引用,后续代码中又没有用了,go.mod 文件中还会存在这个依赖项。该命令命令来清除它。
  2. 当项目刚 clone 下来的时候,有些依赖包本地还没下载好,这个命令可以下载 go.mod 中的依赖包到本地
go mod tidy

下载 go.mod 里的依赖包到本地

go mod download

打包所有依赖包存到当前目录下的 vendor 目录下

go mod vendor

编辑 go.mod 文件

具体怎么用,后续再研究

go mod edit

go work

初始化一个工作区,会创建一个 go.work 文件

go work init

添加模块目录到工作区

go work use ./hello_world

go clean

清理 install 安装的文件

go clean -i

递归清理所有依赖包

go clean -r

显示正在执行的清理命令

go clean -x

仅显示命令,但是不执行

go clean -n
4

评论 (1)

取消
  1. 头像
    silverwq
    Linux · Google Chrome

    分享的内容不错!

    回复