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值
两种方式
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)