二丫讲梵 二丫讲梵
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)

二丫讲梵

行者常至,为者常成
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)
  • 随写编年

  • 家人物语

  • 追忆青春

  • 父亲的朋友圈

  • 电影音乐

  • 效率工具

    • Windows时代

    • Mac时代

      • 我的Mac应用清单以及系统配置整理
      • 在Mac电脑中使用goland开发go语言的一些技巧
      • Mac电脑iterm中配置neovim入门与实践
      • Mac装机之后终端配置
      • Mac升级了Catalina系统之后根目录变成只读
      • 我的Obsidian入门之旅
      • Iterm2配置session续联
      • Mac电脑m1版本使用VSCODE调试golang项目时遇到的问题
      • Mac电脑m1版本基于docker部署软件时的变化
      • 使用开源虚拟化工具UTM在M1版本的Mac系统中安装配置Windows11系统
      • 使用开源虚拟化工具UTM在M1版本的Mac系统中安装配置CentOS7系统
      • vscode开发前端项目时如何tab补全自定义HTML标签
      • Mac电脑中优秀的讲课直播划线批注软件ScreenBrush详解
      • 结合Multitouch完成我在Mac触摸板上的高效使用
      • brew安装软件的一个报错解决
      • mac电脑安装Java开发环境
      • Mac 电脑中 zsh 环境下配置 docker 命令自动补全
    • 各种插件

    • 优秀工具提名

  • 博客相关

  • 闲言碎语
  • 效率工具
  • Mac时代
二丫讲梵
2022-04-03

Mac电脑m1版本使用VSCODE调试golang项目时遇到的问题

文章发布较早,内容可能过时,阅读注意甄别。

新的 Mac 系统使用起来,各个方面都非常舒服,不过因为 CPU 架构的变化,在使用过程中也遇到了不少奇怪的问题,这自然难免,不同的架构之间本身就会存在软件兼容性的问题,今天在通过 vscode 调试 go 项目的时候,就遇到这类问题了。

这里直接总览说明下问题原因以及思路:

    1. 检查 golang 环境版本,确保为 arm 版本的。
    1. 重装编辑器使用的 dlv 工具,重装之后,重启下 vscode。
    1. 记得检查一下自己的编辑器,看看是不是也是 arm 版本的。

一开始与往常一样,配置了launch.json之后,就开始运行调试,然后就看到了这样的报错:

could not launch process: stub exited while waiting for connection: exit status 0
1

后来查看网上说法,发现自己的 golang 版本安装成 amd 的了,尽管运行项目的时候没有任何问题,但是现在调试的时候,就不行了。

于是,需要先把 golang 环境换成 arm 版本的,这里大家根据自己的实际情况调整即可。我是通过压缩包的方式安装,因此直接删除原来的版本,然后下载新版,安装即可:

sudo rm -rf /usr/local/go
wget https://studygolang.com/dl/golang/go1.17.8.darwin-arm64.tar.gz
tar xf go1.17.8.darwin-arm64.tar.gz
sudo mv go /usr/local/go
source ~/.zshrc
1
2
3
4
5

重新安装之后,查看一下当前的 go 版本:

$ go version
go version go1.17.8 darwin/arm64
1
2

然后再次运行调试,发现仍旧不行,还会报错,网上冲浪看了不少的答案,也都是没有效果,有的人说把插件全部删除重新安装,这个的确是需要重新安装的。

cd $GOPATH/bin
rm -f *
1
2

然后在 vscode 的命令窗口中输入 >go:install,选择所有的插件重新安装。重装之前最好重启一下 vscode。

我这里重新安装之后,发现仍旧不行,遇到了一个新的错误:

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

这个问题在 dlv 插件的 issue 中有不少人遇到的,最后,我终于在其中一个评论 (opens new window)中获得灵感。

如果 golang 环境以及插件都已经是 arm 架构之下的,那么可能需要再检查一下编辑器,是不是 arm 版本的,我看了下自己安装的 vscode,果然是 Intel 版本的,于是去到官网下载了 arm 版本的,重新安装之后,发现调试能够正常运行了。

微信 支付宝
上次更新: 2024/07/04, 22:40:37
Iterm2配置session续联
Mac电脑m1版本基于docker部署软件时的变化

← Iterm2配置session续联 Mac电脑m1版本基于docker部署软件时的变化→

最近更新
01
睡着的人不关灯
06-12
02
学习周刊-总第215期-2025年第24周
06-12
03
学习周刊-总第214期-2025年第23周
06-05
更多文章>
Theme by Vdoing | Copyright © 2017-2025 | 点击查看十年之约 | 浙ICP备18057030号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式