使用 go1.21 开发,之前电脑有 1.19 版本

1.21 版本安装到了/Users/zhuxiaoyu/Desktop/go121 目录中

/etc/profile
```
# System-wide .profile for sh(1)

if [ -x /usr/libexec/path_helper ]; then
        eval `/usr/libexec/path_helper -s`
fi

if [ "${BASH-no}" != "no" ]; then
        [ -r /etc/bashrc ] && . /etc/bashrc
fi
export GOROOT=/Users/zhuxiaoyu/Desktop/go121
export GOPATH=/Users/zhuxiaoyu/Desktop/gopath
```

~/.bash_profile
```
export GOROOT=/Users/zhuxiaoyu/Desktop/go121
export GOPATH=/Users/zhuxiaoyu/Desktop/gopath
export GOBIN=$GOPATH/bin
export PROTOBUF_HOME=/usr/local/protobuf
export GO111MODULE=auto
PATH=$PATH:$GOBIN:$PROTOBUF_HOME/bin
```

~/.zshrc
```
export GOPATH=/Users/zhuxiaoyu/Desktop/gopath
export GOROOT=/Users/zhuxiaoyu/Desktop/go121
export GOBIN=$GOPATH/bin
export PROTOBUF_HOME=/usr/local/protobuf
export GO111MODULE=on
export GETHBIN=/Users/zhuxiaoyu/Desktop/geth/build/bin
```


go env
```
GO111MODULE='auto'
GOARCH='amd64'
GOBIN='/Users/zhuxiaoyu/Desktop/gopath/bin'
GOCACHE='/Users/zhuxiaoyu/Library/Caches/go-build'
GOENV='/Users/zhuxiaoyu/Library/Application Support/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='amd64'
GOHOSTOS='darwin'
GOINSECURE=''
GOMODCACHE='/Users/zhuxiaoyu/Desktop/gopath/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='darwin'
GOPATH='/Users/zhuxiaoyu/Desktop/gopath'
GOPRIVATE=''
GOPROXY='https://goproxy.cn,direct'
GOROOT='/Users/zhuxiaoyu/Desktop/go121'
GOSUMDB=''
GOTMPDIR=''
GOTOOLCHAIN=''
GOTOOLDIR='/Users/zhuxiaoyu/Desktop/go121/pkg/tool/darwin_amd64'
GOVCS=''
GOVERSION='go1.21.0'
GCCGO='gccgo'
GOAMD64='v1'
AR='ar'
CC='clang'
CXX='clang++'
CGO_ENABLED='1'
GOMOD=''
GOWORK=''
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -arch x86_64 -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -ffile-prefix-map=/var/folders/ys/nth2j_v53q55rqfkhvdfnj_80000gn/T/go-build2234700829=/tmp/go-build -gno-record-gcc-switches -fno-common
```


vscode 的配置
```
"go.alternateTools": {
        "go.goroot":"/Users/zhuxiaoyu/Desktop/go121",
        "go.gopath":"/Users/zhuxiaoyu/Desktop/gopath"
    }
```


vscode 报错提示
```
go: cannot find GOROOT directory: /Users/zhuxiaoyu/Desktop/gopath/go1.19.9
```

都快疯了,到底这个 vscode 读的哪里的环境变量
举报· 336 次点击
登录 注册 站外分享
18 条回复  
guanzhangzhang 初学 2024-8-28 08:34:15
find /etc -type f -exec grep -l go1.19.9
find / -type f -exec grep -l go1.19.9
https://i.imgur.com/Ug1iMq4.png
we9ta 小成 2024-8-28 03:21:10
{
  "go.gopath": "${env:HOME}/.gvm/pkgsets/go1.22.5/global",
  "go.goroot": "${env:HOME}/.gvm/gos/go1.22.5",
  "cSpell.words": ["gorm", "milli"],
  "editor.formatOnSave": true,
  "go.formatTool": "gofmt",
  "[go]": {
    "editor.formatOnSave": true,
    "editor.codeActionsOnSave": {
      "source.organizeImports": "explicit"
    }
  },
  "[go.mod]": {
    "editor.formatOnSave": true,
    "editor.codeActionsOnSave": {
      "source.organizeImports": "explicit"
    }
  }
}



Gvm 嘎嘎好用
valord577 小成 2024-8-27 19:12:26
vscode+go 环境  在 zsh 和 bash 配置中 不用单独 export  GOPATH GOROOT 这些的

只需要 export PATH=/opt/go/bin:$PATH  其他环境变量通过 go env -w ${key}=${value}

vscode 也不需要设置 go.alternateTools

还有一种可能性就是 环境变了需要重新 source 一下  mac 建议重启或者 logout 一下 防止有缓存
iamperiod331www 小成 2024-8-27 19:02:53
"go.goroot": "/home/xxx/.deck/2.0/go-1.19.6",
"go.gopath": "/home/xxx/gopath",

试试
FengMubai 小成 2024-8-27 18:32:06
建议使用包管理器安装, 非常不建议把软件装在桌面
pkoukk 小成 2024-8-27 18:30:50
go 可以向下兼容,你的电脑上没必要保留两个版本的 go
所以直接在官网下安装包无脑安装就行了,手动安装纯属给自己找麻烦
https://go.dev/doc/install
chesha1 小成 2024-8-27 18:28:04
我也遇到过类似问题,不然别用本机环境变量了,直接写.vscode/launch.json 吧,这里的环境变量 100%能解决问题
DefoliationM 小成 2024-8-27 18:12:00
一顿操作猛如虎,然后连基本的配置都分不清。
aw2350 小成 2024-8-27 18:11:32
看下工作目录下的 goenv ,环境变量 从小到大,先取的 项目配置,再取项目目录的 env ,然后才向上取全局变量等。先在 项目目录下 打印 一下 gopath 和 goroot 的 env 变量值
johnwilson 小成 2024-8-27 17:59:32
goland 不香吗?
12下一页
返回顶部