0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[VSCode] Goの環境設定。Failed to find the "go" binary in either GOROOT() or PATH(...) を解決する

Posted at

環境

  • macOS Sonoma 14.4.1
  • Apple M1 Pro
  • VSCode:1.90.1
    • Go for Visual Studio Code:v0.41.4
  • go1.22.4 darwin/arm64 installed by homebrew
  • zsh

もともとはJetBraisのGoLandを利用していたんですが、周囲でVSCode派が多く無料で利用できるので乗り換えてみることにしました。
GoのExtensionをインストールしていざ利用と思っていたところ以下のようなエラーダイアログがでて定義ジャンプなどの機能が使えなかったので解消のための設定を記録しておきます

遭遇したエラー

Failed to find the "go" binary in either GOROOT() or PATH(...). Check PATH, or Install Go and reload the window. If PATH isn't what you expected, see https://github.com/golang/vscode-go/issues/971

これなにかとういと、Goのパスが解決できないよってことなんですが...
goはHomebrewでインストール。デフォルトで使っていてexportなどは特に記載していない状況

❯ go env GOPATH
$HOME/go

❯ go env GOROOT
/opt/homebrew/Cellar/go/1.22.4/libexec

zshでHomebrewのPATHをexportしているはずなのになぜ…

VSCodeの設定などを確認

VSCodeはデフォルトで/bin/shを使っているのでHomebrewなどのパスが通っていない状況でした
Terminalの設定を
"terminal.integrated.defaultProfile.osx": "zsh"で zsh にしてたので
exportされているもんだろうと思ってましたが、どうやら /bin/sh で起動して /bin/zsh を後で起動しているようですね

sh-3.2$ echo $SHELL
/bin/sh
sh-3.2$ which go
sh-3.2$

HomebrewのPATHを通すコマンドは .zprofile でしているので読み込まれなくて当たり前ですね

❯ cat .zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

解決していきましょう!

このエラーについてググってみると主に解説されている解決方法は
settings.jsonでgo.gorootのPATHを指定するというもの。
私は brew unlink && link で goのバージョンを切り替えて開発することがあるので、毎回これを設定し直すのはめんどくさいなと思いました。
ということで、/bin/sh でHomebrewのPATHを通すコマンド を実行してあげられれば良さそうです。

❯ cat .profile
eval "$(/opt/homebrew/bin/brew shellenv)"

これでVSCodeを再起動

sh-3.2$ echo $PATH
/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/Apple/usr/bin

無事PATH通ってエラーが解消されました!定義ジャンプなどが利用できるようになります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?