为了账号安全,请及时绑定邮箱和手机立即绑定

Go + Protocol buffers 的行为真的很奇怪

Go + Protocol buffers 的行为真的很奇怪

Go
白猪掌柜的 2021-10-11 18:46:46
我正在为我正在处理的项目编写基于服务的服务器,该服务器是用 Go 编写的,并使用协议缓冲区进行服务间通信。一切正常,直到我添加了名为DeviceRequestand 的协议DeviceResponse,现在编译器找不到它们,而协议的 go 源存在并设置在我的GOPATH. WebStorm 也能找到它们,但由于某种原因编译器没有找到。奇怪的是,Go 源不再存在的旧协议可以工作(Webstorm 也无法识别它们)我试过删除我的文件中的文件GOPATH,但这没有用。我的猜测是go使用某种缓存,但我在网上找不到任何关于它的信息。
查看完整描述

1 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

协议缓冲区不会自动编译为 Go 代码,除非您有第三方工具来执行此操作。作为 Protocol Buffers 一部分的 protoc 工具将用于创建 .proto 文件的 Go 实现。输出应位于您的 $GOPATH/src 中。.a 文件将存储在 $GOPATH/pkg 下。代码完成会查看 $GOPATH/pkg 而“go”工具会在 $GOPATH/src 中查找任何已更改的内容。

删除 $GOPATH/pkg 的内容,然后运行“go install”以重新创建 .a 文件。


查看完整回答
反对 回复 2021-10-11
  • 1 回答
  • 0 关注
  • 183 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信