protobuf(Google Protocol Buffers)是Google提供一个具有高效的协议数据交换格式工具库(类似Json)。
在看百度Apollo自动驾驶开源代码时,经常会看到.proto文件,刚开始不了解是怎么用的,同时在看代码时经常会看到一些找不到定义的类,这个时候往往导致代码看不下去,在简单了解google protobuf 的使用后,问题都迎刃而解。
.proto里的message类数据结构是Apollo里各模块常用的一种数据结构。
后面将Apollo代码里的规划控制相关模块的算法的单元测试单独摘出来的时候也会用的上。

比如这个PathPoint,根据上下文的用法,显然是个路径点数据结构类,但是整个代码都没有找到任何class PathPoint关键词,没有找到这个类的定义,右键转到定义也会提示找不到。
其实这个PathPoint是一个由.proto文件定义的message生成的类,在编译后会生成class PathPoint的定义,proto文件编译后会生成.pb.cc和.pb.h会定义相关message类的数据成员以及操作函数

比如PathPoint类
Protobuf库在ubuntu下的安装步骤略去,介绍下使用
下面以一个简单的例子来说明protobuf在Apollo代码中是如何使用的
环境是ubuntu c++用cmake编译

本文详细介绍了如何在Apollo自动驾驶开源代码中理解.proto文件,展示如何通过protobuf生成数据结构类,并提供了PathPoint类的例子。重点讲解了.proto文件的编译过程、message类的使用和CMakeLists.txt的配置。
最低0.47元/天 解锁文章

2254

被折叠的 条评论
为什么被折叠?



