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.
然后就可以正常调试了。