MacOS下使用go install安装MCUMgr遇到问题求助
解决MacOS上安装MCUMgr时的Go依赖兼容问题
我之前在MacOS上安装MCUMgr工具时,碰到过和你完全一样的报错,折腾了好一会儿才搞定,给你分享几个亲测有效的解决方案:
方案一:更新依赖模块到兼容版本
这个错误本质是旧版本的golang.org/x/sys和Go 1.18+的语法检查规则不兼容导致的,先手动更新这个依赖再重新安装MCUMgr就行:
- 执行命令更新
golang.org/x/sys到最新兼容版本:go get golang.org/x/sys@latest - 重新运行MCUMgr的安装命令:
go install github.com/apache/mynewt-mcumgr-cli/mcumgr@latest
方案二:用GitHub镜像替换官方依赖
如果更新模块后还是出现unrecognized import path的问题,大概率是网络原因导致无法正常拉取golang.org的模块,这时候可以用Go Modules的replace指令替换为GitHub上的镜像仓库:
- 创建一个临时目录用来执行安装(避免影响其他项目):
mkdir temp-mcumgr && cd temp-mcumgr - 初始化临时的Go模块:
go mod init temp-mcumgr-install - 添加替换规则到
go.mod文件:echo 'replace golang.org/x/sys => github.com/golang/sys latest' >> go.mod - 再次执行MCUMgr的安装命令:
go install github.com/apache/mynewt-mcumgr-cli/mcumgr@latest
安装完成后,这个临时目录就可以删掉了。
方案三:临时降级Go版本(下策)
如果上面两个方案都不生效,可以尝试把Go版本降级到1.17.x版本,旧版本的Go对//go:linkname的检查没有那么严格,能绕过这个兼容性问题。不过更推荐前面的方案,毕竟新版本Go有更多特性和修复。
内容的提问来源于stack exchange,提问作者Markus
相关产品推荐
相关产品推荐

