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