Golang本地开发环境搭建

简单记录下Go语言开发环境的搭建和基本用法.

开发环境搭建

安装

Windows或Mac直接去官网国内镜像下载安装包就可以.

Ubuntu安装最新版本参考Ubuntu安装最新版 sudo snap install --classic go

或直接使用下面的命令:

sudo tar -C /usr/local -xzf  go1.16.linux-amd64.tar.gz
# .bashrc
export PATH=$PATH:/usr/local/go/bin
# 安装最新版本
sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt-get update
sudo apt-get install golang-go

设置(可选)

如果在Linux的通过解压安装的话,需要设置下环境变量:

# vi ~/.zshrc  添加
export GOPATH=$HOME/go
export GOBIN=$HOME/go/bin
export PATH=$GOPATH/bin:$PATH

注: 在新版命令行安装之后, GOROOT(设置安装路径)和GOPATH都不用设置.

GOPATH 默认位置为 $HOME/go, 该目录用来在标准Go目录之外存放get, build和install等下载的依赖包. 放置源代码(src)、归档文件(pkg)和可执行文件(bin)

# 查看当前环境变量 
go env
# 查看GOPATH
go env GOPATH

Go扩展包的设置

优先选择官方全球代理goproxy.io:

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct
# 或者
go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct

注: 阿里的代理经常找不到包,不推荐使用

# 显示调试信息 verbose
go get -v

解决 initializing sumdb.Client: checking Get “https://sum.golang.org/tile/8/2/000.p/149": dial tcp 142.251.43.17:443: i/o timeout

原因:网络无法访问 https://sum.golang.org

解决方式: go env -w GOSUMDB=off 去掉检查

或者检查站点也设置为镜像:

# Linux
go env -w GOSUMDB=sum.golang.google.cn
# Windows
$env:GOPROXY="sum.golang.google.cn"

解决 unrecognized import path “golang.org/x/sys/windows”

cd C:\Users\xulz\go\src\golang.org\x>

git clone https://github.com/golang/sync.git
git clone https://github.com/golang/crypto.git
git clone https://github.com/golang/sys.git

构建

# Windows
set GOARCH=amd64
set GOOS=linux
go build -o hello hello.go

常用命令

# 运行
go run hello.go

# 编译并指定运行环境
GOOS=linux GOARCH=amd64 go build -o hello hello.go

# 打包
go install hello.go

# 格式化, -w:直接覆盖原代码,不输出到控制台
gofmt -w hello.go

## 查看文档
godoc fmt

本地学习指南和文档环境

本地运行Go指南

go get golang.org/x/tour
tour

如果遇到错误: Couldn’t find tour files: could not find go-tour content; check \$GOROOT and \$GOPATH 的解决方法:

把\$GOPATH/pkg/mod/golang.org/x/tour@v0.0.0-20200201212631-8f38c9a8d074 文件夹复制到\$GOPATH/src/tour下面就可以了. (\$GOPATH 默认是$HOME/go/)

如果以上命令失败,访问中文在线版本

本地运行Go文档

go get golang.org/x/tools/cmd/godoc
godoc -http=:6060
//之后用浏览器访问 http://127.0.0.1:6060/doc/

GoLand使用

运行main.go的问题undefined:xxx

GoLand默认只运行main.go, 如果main.go包含了其他文件,就会报以上错误.

解决方式:点击Run/Debug Configurations, 把Run Kind修改为Directory或Package就可以了.

cannot find module for path

go env -w GO111MODULE=on

扩展阅读