当前位置: 首页 > 知识库问答 >
问题:

是否可以在运行协议时指定输出版本?

鲜于裕
2023-03-14

我正在开发一个应用程序,该应用程序必须针对使用google protocol buffers 3.0.0版的目标进行交叉编译。有没有办法在protoc命令(或.proto文件)中指定生成的代码应该与protocol buffers版本3.0.0兼容,即使我用来生成代码的protoc是更高版本(如3.5.1)?

更新目标不是一个选项,我也不介意在我的开发环境中安装3.0.0,但如果说任何想要构建此代码的人都必须安装特定版本的协议缓冲区,这似乎有点过于苛刻。

共有1个答案

金亦
2023-03-14

在proto描述符的顶部,您可以指定您正在使用proto3:

syntax = "proto3";

这里有一个例子:https://developers.google.com/protocol-buffers/docs/reference/proto3-spec

 类似资料:
  • 问题内容: 可以说我有两个协议: 我想要做的是为“ TheirPcol”创建一个协议扩展,该协议扩展允许在符合“ TheirPcol”的任何事物上工作。所以像这样: 关键是“ TheirPcol”,“ TheirStruct”全部由我无法控制的外部API处理。因此,我通过了实例“ inst”。 能做到吗?还是我必须做这样的事情: 问题答案: 似乎有两个用例说明为什么您想做自己正在做的事情。在第一个

  • win11 go run .会生成exe文件到缓存目录,每次都弹出防火墙很烦,能不能指定生成目录? 谢谢

  • 问题内容: 例如,假设我想“提取” 为三个单独的变量,例如: 我该怎么做,而忽略了 “为什么要这么做呢?” 您可能会被问到这个问题。 之前已经多次问过类似的问题,但是从未给出真正的答案,因为OP真正需要的是使用不同的方法。很好,但这有可能吗? 我看过反射,似乎没有任何方法可以使我甚至向实例添加额外的字段,更不用说动态创建本地了。 问题答案: 是否可以在Java运行时创建变量? 简单回答是不。 Ja

  • 问题内容: 我正在一个项目中,该项目有很多由库创建的对象,并且无法访问这些对象的创建过程。 以下代码片段很好地说明了我的问题。 码: 是Clazz在编译时可能会或可能不会实现的接口。 码: 以下代码是我遇到的问题。请注意以下几点: 仅在c是的实例时调用。 并且都是我无法访问的类中的私有方法。 在编译时,将 不 包含名为的方法。 ExampleExecutor 不是 我的课程。我无法以任何方式访问它

  • Hprose 远程过程调用(RPC)通讯可以在任何底层网络协议上传输。例如 HTTP,TCP 或 UNIX socket。 HTTP 绑定 当 hprose 远程过程调用(RPC)工作于 HTTP 之上时,hprose 远程过程调用(RPC)的数据作为 POST 请求的 body 部分发送,以响应的 body 部分返回。 Hprose 远程过程调用(RPC) 对 HTTP 的头部(head)没有任

  • 问题内容: 我想将所有内容都保留在virtualenv中。OpenCV有可能吗?我可以从头开始构建,我是否只需要先设置virtualenv,然后使用特殊的编译标志告诉它安装在哪里? 问题答案: 我发现解决方案是必须将cv2.so和cv.py复制到运行virtualenv的目录,然后pip install numpy。为此,我使用了Ubuntu12.04。