macos M1 芯片,无法使用 vscode 调试 golang

新购的 macbook,芯片为 Apple M1 Pro
今天使用 vscode 开发 golang项目,想要使用debug功能进行调试,结果出现如下问题:

Failed to launch: could not launch process: can not run under Rosetta, check that the installed build of Go is right for your CPU architecture

几番搜索,终于在 stackoverflow 找到解决方案:Cannot run debug Go using VSCode on Mac M1

整理如下:

1.

Apple M1 Pro 芯片是arm架构的,将本机的 go 环境更换为 darwin-arm64 架构的
https://go.dev/dl/

2.

进入 $GOPATH 目录,将 bin 文件夹 rm 掉,或者 mv 更新名称;然后新建 bin 目录。
vscode 使用 $GOPATH/bin/dlv 进行golang项目的调试,之前由于安装的 go 是 darwin-amd64 架构的,所以之后由vscode安装的 dlv 也是 darwin-amd64 架构的了。其实 $GOPATH/bin 目录中的 tools 都是 vscode 使用 go 编译生成的。如果 go 本身是 darwin-amd64 架构的,那么编译出来的 bin 文件自然也是 darwin-amd64 架构的了。

3.

退出 vscode,再重新打开,这时候 vscode 会有弹窗表示 $GOPATH/bin 目录下缺少各种 tools 文件,直接点击 Install All 就可以了。
或者按 Shift + Command + P,打开 vscode 命令输入框,输入 go: install tools,选择 Go: Install/Update Tools 即可

end.

然后就可以正常调试了。

posted on 2022-03-27 17:55  HorseShoe2016  阅读(2430)  评论(0编辑  收藏  举报