protoc和protobuf(Protocol Buffer)有什么区别

时间:2018-08-16 06:54:49

标签: tensorflow protocol-buffers protoc

是否可以澄清protocol buffer and protoc之间的区别?谷歌搜索仅显示协议缓冲区。我看到protobuf编程语言版本和protoc操作系统86_32的命名约定都不同。它们是不同还是相同?

在使用tensorflow时是否需要同时安装两者?虽然

protoc --version

是3.6,但我的点子在抱怨

tensorflow-gpu 1.7.0 has requirement protobuf>=3.4.0, but you'll have protobuf 2.6.1 which is incompatible.

1 个答案:

答案 0 :(得分:3)

“ protobuf”或“协议缓冲区”是序列化格式和/或关联工具的名称。

protoc是特定的protobuf工具,尤其是Google对“ .proto”解析器和代码生成器(以及其他一些东西)的实现。

“。proto”是一种模式DSL,用于描述您计划在应用程序中使用的消息-它是基于文本的。

通常的过程是:

  1. 为您的消息编写或获取.proto
  2. 通过protoc或任何其他特定于库的生成器工具运行.proto,以获取目标平台的消息类型
  3. 将这些生成的消息类型添加到您的应用程序中
  4. 导入/引用与您选择的工具/平台匹配的protobuf库
  5. 构建

某些工具以相反的方式工作,根据平台中的您自己的类型工作(“代码优先”而不是“合同优先”的方法)