运行 protoc 时是不是可以指定输出版本?

Posted

技术标签:

【中文标题】运行 protoc 时是不是可以指定输出版本?【英文标题】:Is it possible to specify an ouput version when running protoc?运行 protoc 时是否可以指定输出版本? 【发布时间】:2018-04-25 14:14:34 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

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

syntax = "proto3";

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

【讨论】:

很遗憾,它没有在输出文件中指定 protoc 的版本,因此您仍然无法将生成的文件与不同版本的协议缓冲区一起使用。

以上是关于运行 protoc 时是不是可以指定输出版本?的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu 怎么查看protoc版本

找不到`protoc`命令

如何在kettle报错时终止运行的同时将错误日志输出到数据库中

我想添加参数以便我可以输出将指定输出

运行内存RAM是啥

关于MAC M1处理器运行Android protoc报错的解决方案