树莓派运行Golang程序失败:gobuffalo/uuid包未定义报错
报错说明
执行go run .时编译失败,错误信息如下:
# github.com/gobuffalo/uuid /home/pi/go/pkg/mod/github.com/gobuffalo/uuid@v2.0.5+incompatible/generator.go:32:13: undefined: uuid.NewV2 /home/pi/go/pkg/mod/github.com/gobuffalo/uuid@v2.0.5+incompatible/uuid.go:41:7: undefined: uuid.V2
故障原因
github.com/gobuffalo/uuid@v2.0.5+incompatible依赖底层的satori/go.uuid库提供UUID生成能力,satori/go.uuid早已停止维护,其最新版本移除了V2版本UUID的相关API(NewV2方法、V2常量)。你重装Go和Gobot时,go mod默认拉取了satori/go.uuid的最新版本,和旧版本的gobuffalo/uuid出现版本不兼容,导致编译报错。
修复方案
- 在项目根目录的
go.mod文件末尾添加如下依赖锁定规则,强制使用支持V2 API的satori/go.uuid最终版本:
replace github.com/satori/go.uuid => github.com/satori/go.uuid v1.2.0
- 执行
go mod tidy同步项目依赖,清理无效的本地依赖缓存 - 重新执行
go run .,脚本即可正常编译运行
内容的提问来源于stack exchange,提问作者0ussama
相关产品推荐
相关产品推荐

