golang
“go1.16.9” does not match go tool version
Go のコンパイル時にエラーが出て少し悩んだ。
1# internal/unsafeheader
2compile: version "go1.16.9" does not match go tool version "go1.17"
3# runtime/internal/sys
4compile: version "go1.16.9" does not match go tool version "go1.17"
5# internal/race
6compile: version "go1.16.9" does not match go tool version "go1.17"
7# unicode/utf8
8compile: version "go1.16.9" does not match go tool version "go1.17"
goenv を利用していて、goenv global 1.16.9 と指定しているのに、go1.17 が go tool で利用されている。
こういうときは、go env コマンドで go がどのような環境変数を読み込んでいるか確認する。
1go env | grep GOVERSION
2GOVERSION="go1.17"
たしかに、go1.17 になっているが、インストールした記憶がない…
色々と考えてみたが、自分が go をインストールする経路は、goenv か brew しかないと考え、brew list をすると、go がインストールされていた。
しかも、brew update で go のバージョンが上げられたようだった。
ということで、 brew uninstall go して brew から go をアンインストールし、goenv rehash
1go env | grep GOVERSION
2GOVERSION="go1.16.9"
無事に設定されて、コンパイルもできるようになった。
brew だと他のツールに巻き込まれて go がインストールされる場合もあるから、注意が必要かもしれない。