Mac安装go,并成功在vs code上运行项目的艰辛过程
Mac安装go
去年下半年学了go,之前一直在windows上写练习的代码,后面换了mac之后,就想在mac上也安装go,但是一直下载不了工具包,就一直拖着,今天就趁有这个心情就解决一下这个,遇到的问题和解决的过程都在目录中的问题和解决中。
下载和安装
参考的博客:https://blog.csdn.net/weixin_41514713/article/details/119827522
下载go的地址:https://golang.google.cn/dl/
下载后双击安装pkg包就进入自动安装了
安装的默认路径是: /usr/local/go/bin
fanhuifang@fanhuifangdeMacBook-Pro bin % ls /usr/local/go/bin
go gofmt
fanhuifang@fanhuifangdeMacBook-Pro ~ % vim ~/.zshrc
fanhuifang@fanhuifangdeMacBook-Pro ~ % source ~/.zshrc
fanhuifang@fanhuifangdeMacBook-Pro ~ % go version
go version go1.17.3 darwin/arm64
fanhuifang@fanhuifangdeMacBook-Pro ~ %
这样就安装成功了~查看安装的环境信息
fanhuifang@fanhuifangdeMacBook-Pro ~ % go env
GO111MODULE=""
GOARCH="arm64"
GOBIN="/usr/local/go/bin"
GOCACHE="/Users/fanhuifang/Library/Caches/go-build"
GOENV="/Users/fanhuifang/Library/Application Support/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="arm64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE="/Users/fanhuifang/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/fanhuifang/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_arm64"
GOVCS=""
GOVERSION="go1.17.3"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/dev/null"
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/27/pybnq_dx1sn6cwkgy9xlh7wr0000gn/T/go-build3643553680=/tmp/go-build -gno-record-gcc-switches -fno-common"
fanhuifang@fanhuifangdeMacBook-Pro ~ %
创建go的目录
在Mac上安装vs code,用来开发go,安装教程可自行百度安装
安装vscode之后,在里面点击打开文件夹始终没有反应,于是我就退出vscode后重新打开,就弹出来让我选择语言了,就可以安装go的插件了。
到这里就算安装成功了,但是还缺go的工具,安装工具就开始出问题了,下面的步骤就是解决办法了。
问题和解决
1、permission denied
每次安装插件的时候都报permission denied,肯定是权限不够。
今天忙完还是想把go在mac用的包安装好,但是每次安装都会弹出类似的:
go install github.com/nsf/gocode: open /usr/local/go/bin/gocode: permission denied,每一个都安装失败,都是没有权限,于是我查了一下,说是手动sudo去创建对应的文件夹,当我都sudo创建完,并对目录赋予权限(sudo mkdir /usr/local/go/bin/gocode),再次安装,又说目录已存在,还是安装不了,于是我又接着查,看到了下面的解决办法:
我一想是不是go目录的权限不够,于是查了一下权限之后执行了上面的命令,执行后又查了一下。
果然是这个go目录的权限不够,赋权限之后又执行了一下install。
install是咋出来的,只要创建一个main.go的文件,输入func后,vs code就会弹出来install,鼠标一点就可以安装了。点完之后安装成功就是这样了:
开心,这个问题从我买电脑回来之后就一直困扰着我,终于解决了。
不再是之前那种Permission denied了。
2、no required module provides package xxx: go.mod file not found in current directory or any parent directory; see ‘go help modules’
但是当我写了代码之后,却运行不起来
网上说执行:go env -w GO111MODULE=auto
于是我就乖乖听话执行了:
3、main.go:1:1: expected ‘package’, found ‘EOF’
接着vs code执行go build
查了一下,随便找了一个:https://blog.csdn.net/m0_38103546/article/details/83098341
解决方案:只要将文件保存一下,再运行就ok了。
于是保存一下,再次执行:
终于大功告成了,后面就可以愉快在mac写go代码了。