it is kinda painful to configure go and its tools on vscode on mac for the first time and second time (if you did not record what you did for the first time ...).
here are steps
- install golang using brew
brew install go
- check the following commands
go env // check go env vars
which go // check which go
brew info go // very useful info here
till here everything should work fine, but I used oh-my-zsh (which is just based on zsh, so you just need to configure stuff on .zshrc file), so I configure my .zshrc file
cd
nano ~/.zshrc
#GOROOT
export GOROOT=/opt/homebrew/Cellar/go/1.17.5/libexec
#GOPATH WORKSPACE
export GOPATH=$HOME/go
#GOROOT BIN
export PATH=$PATH:$GOROOT/bin
#GOPATH BIN
export PATH=$PATH:$GOPATH/bin
#GOPROXY setup, this is qiniu proxy
export GOPROXY=https://goproxy.cn
you see that GOROOT info can be found from the previous step brew info go
, and do not forget to add libexec
after it, so it will become whatever I show above.
till here I decide to download a golang project and enter vscode to edit some go files, but I notice there are missing go-tools to install, and somehow they keep reporting errors
- timeout error (I am in China, so I need to configure a proxy for that)
- not found error (go tools not found issue explained below), can also check here
you can fix it by
mkdir -p $GOPATH/src/golang.org/x/
and cd into this directory and :
git clone https://github.com/golang/tools.git
after this go tools can be successfully implemented, and then you can go back to vscode and follow the popup and click install or install all to install go tools, and they should be good.
my final go root is the following:
GO111MODULE="off"
GOARCH="arm64"
GOBIN=""
GOCACHE="/Users/jingtianzhang/Library/Caches/go-build"
GOENV="/Users/jingtianzhang/Library/Application Support/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="arm64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE="/Users/jingtianzhang/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/jingtianzhang/go"
GOPRIVATE=""
GOPROXY="https://goproxy.cn"
GOROOT="/opt/homebrew/Cellar/go/1.17.5/libexec"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/opt/homebrew/Cellar/go/1.17.5/libexec/pkg/tool/darwin_arm64"
GOVCS=""
GOVERSION="go1.17.5"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -arch arm64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/42/m47sm8dn3rs4_ct90k_t9drm0000gn/T/go-build1902292704=/tmp/go-build -gno-record-gcc-switches -fno-common"
here you can see GOPROXY, GOROOT, GOPATH, GO11MODULE setups here.
thank you very much and wish you good 2022 year
Top comments (0)