Protobuf安装|编译|使用

Protobuf安装|编译|使用,第1张

Linux编译安装protocal-3.6.1

https://github.com/protocolbuffers/protobuf/releases/tag/v3.6.1

test.cc

protoc test.proto --cpp_out=.

此时当前目录将档凳生成两个文件test.pb.cc test.pb.h

-I:指定protobuf的头文件

-L: 指定protobuf的库文件

*可能会遇到以下报错

/usr/bin/ld: cannot find -lprotobuff

collect2: error: ld returned 1 exit status

这是因为gcc 编译器找不到protobuf.so库文雀虚件,因为在usr/local/lib下的protobuf.so不能被gcc找到。解决方法有两种:

a. export LD_LIBRARY_PATH=/usr/local/lib (这种方法临时生效,重启就不生效了)

b. 在/etc/ld.so.conf 文件里面添加路径 /usr/local/lib ,因为linux系统运行库会读取这里的目录寻行岁旅找so,之后ldconfig

这一步结束编译出可执行文件a.out

https://github.com/ttroy50/cmake-examples

博主因为公司项目原因,客户端和服务端通信采用了protobuf协议,关于protobuf协议,不明白的自行百度,这个协议因其高效安全性,还是蛮常见的。

博主也是第一次安装使用,定义协议文件时发现不知道如何嵌套定义结构了孝携,摸索。

建议直接参考git上的README

原来缺少老慎轮一个工具libtool,安装:

之后为侍信了保证不出错 ,还需要安装一个工具libsysfs-dev

示例协议文件:

protoc编译出c++的文件

使用时发现:

对于可重复的Layer可以使用add_layers()赋值,但是centrpoint却没有类似set或add的方式赋值。

打开demo.pb.h搜索一下,发现centrpoint只有两个疑似的函数set_allocated_centerpoint()和mutable_centerpoint(),后续查阅发现,这两个函数都能设置centpoint值

两种方式


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12523890.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存