CPUが原因でvscodeでgoのデバッグができなかったときの対処法(M1mac)
概要
M1mac で vscode を使って go のデバッグをしようとしたときに、vscode のポップアップで以下のエラーが発生しました。
could not launch process: can not run under Rosetta, check that the installed build of Go is right for your CPU architecture
意外とハマったので対処法についてまとめます。
対処法
環境を以下のようにする必要がありました。自分の環境では、go(goenv)がで arm64 だったのと、vscode も Intel 版だったのでうまく動作できませんでした。どちらも、再インストールすることで無事に実行できました。
ツール | 環境 |
---|---|
vscode | Apple Silicon 版 |
go | darwin/arm64 版 |
vscode と go のアンインストールとインストール
vscode
アンインストール
Mac の Application(アプリケーション)フォルダーから vscode を削除すれば完了です。拡張機能などはほかのフォルダーに保存されているので特に気にせず削除できます。
インストール
以下の url のページから「Apple Silicon」をクリックして、ダウンロードした後に解凍すれば完了です。Application(アプリケーション)フォルダーに移しましょう。
go
アンインストール
goenv と brew でインストールした go のアンインストール方法について記述します。
goenv
anyenv でインストールした場合、以下のコマンドでアンインストールします。
anyenv uninstall goenv
goenv を brew または Git でインストールしていた場合、以下のどちらかでアンインストールします。
brew uninstall goenv
rm -rf ~/.goenv
また、bashrc(zshrc)に以下の記述があった場合は削除します。
eval "$(goenv init -)"
export PATH="$GOROOT/bin/$PATH"
export PATH="$PATH:$GOPATH/bin"
brew
brew でインストールした場合は以下でアンインストールします。
brew uninstall go
sudo rm -rf /usr/local/go
sudo rm -rf /etc/paths.d/go
インストール
以下のリンクから Apple Silicon の go インストーラをダウンロードします。インストーラを起動したら、指示に従ってインストールしましょう。
go 自体は GOPATH の設定をしなくても動作しますが、godoc の動作に必要だったため以下のように bashrc(zshrc)に記述します。
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
インストール後、ターミナルからgo version
を実行したさいにdarwin/arm64
が確認できたら完了です。
> go version
go version go1.17.5 darwin/arm64
動作確認
動作確認方法について記述します。
以下のようなソースコードを作成します。6 行目(fmt.Println
)でブレークポイントを指定します。
package main
import "fmt"
func main() {
fmt.Println("Hello World!")
}
Go の拡張機能「Go for Visual Studio Code」をインストールして、command + shift + p
でGo: Install/Update Tools
を選択します。
以下のようにすべてのチェックボックスを選択し「OK」をクリックしてインストール完了を待ちます。
そして、デバッグから「実行とデバッグ」をクリックした後、以下のように画面下部がオレンジ色になれば成功です。
まとめ
M1Mac の vscode で go のデバッグをしようとしたときに発生した以下のエラーの対処法についてまとめました。Apple Silicon は、このような箇所でハマってしまうので注意が必要ですね。特に、goenv は非対応だったので、時間がかかってしまいました。
could not launch process: can not run under Rosetta, check that the installed build of Go is right for your CPU architecture
参考
Discussion
VSCodeでなくIntelliJ IDEAなのですが、同じエラーが出て悩んでました。
brewでgoがインストールされており、それが何かしら悪さした可能性があると思い、公式サイトのインストーラでインストールしたら、ちゃんとIntelliJ IDEA上でデバッグできるようになりました!
ありがとうございました!
エラーが修正されてよかったです!
なるほど、IntelliJ IDEA でも同様のエラーが発生するんですね。
教えていただきありがとうございます!
記事に追記させていただきます。