我正在为我正在处理的项目编写基于服务的服务器,该服务器是用 Go 编写的,并使用协议缓冲区进行服务间通信。一切正常,直到我添加了名为DeviceRequestand 的协议DeviceResponse,现在编译器找不到它们,而协议的 go 源存在并设置在我的GOPATH. WebStorm 也能找到它们,但由于某种原因编译器没有找到。奇怪的是,Go 源不再存在的旧协议可以工作(Webstorm 也无法识别它们)我试过删除我的文件中的文件GOPATH,但这没有用。我的猜测是go使用某种缓存,但我在网上找不到任何关于它的信息。
1 回答
![?](http://img1.sycdn.imooc.com/54584cb50001e5b302200220-100-100.jpg)
江户川乱折腾
TA贡献1851条经验 获得超5个赞
协议缓冲区不会自动编译为 Go 代码,除非您有第三方工具来执行此操作。作为 Protocol Buffers 一部分的 protoc 工具将用于创建 .proto 文件的 Go 实现。输出应位于您的 $GOPATH/src 中。.a 文件将存储在 $GOPATH/pkg 下。代码完成会查看 $GOPATH/pkg 而“go”工具会在 $GOPATH/src 中查找任何已更改的内容。
删除 $GOPATH/pkg 的内容,然后运行“go install”以重新创建 .a 文件。
- 1 回答
- 0 关注
- 183 浏览
添加回答
举报
0/150
提交
取消