Go语言 什么原因会导致出现类似“内部错误:无法找到嵌入文件的.”在围棋?

xiozqbni  于 2023-10-14  发布在  Go
关注(0)|答案(1)|浏览(576)

我在我的分支工作了几天。与此同时,master分支已经发展,所以我做了git rebase master
输出显示某些文件中的冲突:

Auto-merging vendor/modules.txt
CONFLICT (content): Merge conflict in vendor/modules.txt
Auto-merging go.sum
CONFLICT (content): Merge conflict in go.sum
Auto-merging go.mod
CONFLICT (content): Merge conflict in go.mod
error: could not apply 1bd673ea... update vendor folder
Resolve all conflicts manually, mark them as resolved with
update vendor folder
"git add/rm <conflicted_files>", then run "git rebase --continue".
You can instead skip this commit: run "git rebase --skip".
To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply 1bd673ea... update vendor folder

解决冲突后,我执行go mod tidy,然后执行go mod vendor。结果是一个奇怪的信息:
内部错误:找不到www.example.com的嵌入文件github.com/grpc-ecosystem/grpc-gateway/v2/runtime://go:build comment without // +build comment
这是什么意思,我该如何避免?

lnlaulya

lnlaulya1#

从最后的错误消息//go:build comment without // +build comment来看,其中一个工具需要新的//go:build和旧的// +build构建约束样式。我猜这是因为你的go.mod说你想支持比1.18更早的Go版本(当// +build过时的时候),但是这个grpc-gateway包是为Go 1.18编写的,只包含一个//go:build样式约束。
查看file in question的源代码,看起来它只有一个//go:build注解,但go.mod说它应该支持Go 1.17。所以看起来那个包裹坏了...事实上,看起来有一个open issue与之相关。所以你可能要等待他们修复它,使用一个旧的版本,或者在你自己的go.mod中使用一个replace来使用一个fork。
我想这是在几天前v2.10.2发布时被打破的,当时模糊文件添加了//go:build行,而没有// +build行。

**更新:**看起来这个问题已经在v2.10.3中得到修复。

相关问题