Apollo里常用的google protobuf简明教程

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

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编译

1.利用pro

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wujiangzhu_xjtu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值