有人可以澄清协议缓冲区和协议之间的区别吗?谷歌搜索只显示协议缓冲区。我看到protobuf编程语言版本和protoc操作系统-86_32的命名约定是不同的。它们是不同的还是相同的?
在使用张量流时我需要同时安装两者吗?虽然
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.
"protobuf"或"Protocol buffers"是序列化格式和/或相关工具的名称。
protoc
是一个特定的protobuf工具,特别是Google的".proto"解析器和代码生成器的实现(以及其他一些东西(
".proto"是一个架构DSL,用于描述您计划在应用程序中使用的消息 - 它是基于文本的。
通常的过程是:
- 为您的邮件编写或获取 .proto
- 通过 Protoc 或任何其他特定于库的生成器工具运行 .proto,以获取目标平台的消息类型
- 将这些生成的消息类型添加到应用程序中
- 导入/引用与您选择的工具/平台匹配的 Protobuf 库
- 建
有些工具则相反,在平台中从您自己的类型工作("代码优先"而不是"合同优先"方法(