protobuf

安装 protobuf 很水 慎入 主要做个备份

旧城冷巷雨未停 提交于 2019-12-05 00:41:58
[root@localhost yuming]# wget https://protobuf.googlecode.com/files/protobuf-2.4.1.zip [root@localhost yuming]# unzip protobuf-2.4.1.zip [root@localhost yuming]# cd protobuf-2.4.1/ [root@localhost protobuf-2.4.1]# ./configure [root@localhost protobuf-2.4.1]# ./configure checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /usr/bin/mkdir

源码编译opencv3.4.3 出错:undefined reference to `google::protobuf::internal::Release_CompareAndSwap

偶尔善良 提交于 2019-12-05 00:41:44
打开 protobuf/src/google/protobuf/stubs/atomicops_internals_generic_gcc.h 在下面添加: inline Atomic64 Release_CompareAndSwap(volatile Atomic64* ptr, Atomic64 old_value, Atomic64 new_value) { __atomic_compare_exchange_n(ptr, &old_value, new_value, false, __ATOMIC_RELEASE, __ATOMIC_ACQUIRE); return old_value; } 来源: CSDN 作者: 天地传奇3 链接: https://blog.csdn.net/weixin_43800762/article/details/85090286

Google protobuf的安装及使用

空扰寡人 提交于 2019-12-05 00:35:48
最近应为工作的需要,合作的部门提供了protobuf的接口,总结了一下使用的过程和方法如下: 下载protobuf-2.3.0: http://protobuf.googlecode.com/files/protobuf-2.3.0.zip 安装: unzip protobuf-2.3.0.zip cd protobuf-2.3.0 ./configure make make check make install 结果: Libraries have been installed in: /usr/local/lib Head files hava been installed in: /usr/local/include/google/ protobuf/ 开始写.proto文件: BaseMessage.proto: message MessageBase { required int32 opcode = 1; // other: sendMgrId, sendId, recvMgrId, recvId, ... } message BaseMessage { required MessageBase msgbase = 1; } BaseMessage.proto是其它消息proto文件的基础,以容器模块的C2S_GetContainerInfo为例:

Go实战--golang中使用gRPC和Protobuf实现高性能api(golang/protobuf、google.golang.org/grpc)

跟風遠走 提交于 2019-12-05 00:32:19
生命不止,继续 go go go !!! 号外号外,插播一条广告,通过博客的uv可以看到周五,程序员是不怎么干活的: 本篇博客,使用gRPC和Protobuf,实现所谓的高性能api。 protobuf golang中的protobuf大家应该不会很陌生,之前也有博客介绍过: Go实战–go中使用google/protobuf(The way to go) Protocol Buffers (a.k.a., protobuf) are Google’s language-neutral, platform-neutral, extensible mechanism for serializing structured data. You can find protobuf’s documentation on the Google Developers site. 获取: go get -u github.com/golang/protobuf/proto go get -u github.com/golang/protobuf/protoc-gen- go Protobuf语法 下面简要介绍Protobuf语法: 参考: https://segmentfault.com/a/1190000007917576 官方: https://developers.google.com

golang中gRpc的安装&goland 插件protobuf support

帅比萌擦擦* 提交于 2019-12-05 00:31:41
1、 (1)Protocol Buffers(简称protobuf)用于结构化数据和字节码之间互相转换(即实现从结构体转换为字节流以及从字节流转换为结构体),一旦你定义了自己的报文格式(message),你就可以运行ProtocolBuffer编译器,将你的.proto文件编译成特定语言的类。 (2)proto里的message,pb.go里的结构体(带方法) proto里的service,pb.go里Client API for Events service处供客户端使用的接口定义、接口实例、接口实例的初始化函数。Server API for Events service处供服务端使用的接口定义,注册函数。如果其中某一端或同时两端为流式RPC,在有流的一端,会专门为其流生成接口定义、接口实例。可以直接使用生成的实例,也可以自己实现接口,自定义实例。接口定义的主要方法就是Send和Recv。 (3)GRPC的Client与Server,均通过Netty Channel作为数据通信;序列化、反序列化则使用Protobuf,每个请求都将被封装成HTTP2的Stream,在整个生命周期中,客户端Channel应该保持长连接,而不是每次调用重新创建Channel、响应结束后关闭Channel(即短连接、交互式的RPC),目的就是达到链接的复用,进而提高交互效率。 (4)服务端用pb

安装protobuf可能遇到的问题

社会主义新天地 提交于 2019-12-05 00:31:22
下载protobuf-2.3.0: http://protobuf.googlecode.com/files/protobuf-2.3.0.zip http://code.google.com/p/protobuf/downloads/list 安装: unzip protobuf-2.3.0.zip cd protobuf-2.3.0 ./configure make make check make install 1.每步在执行过程中注意权限问题,有的命令不sudo执行会出问题。 ./configure make make check make install 2. 执行./configure 出现error,查看config.log文件看看是否缺某些安装软件,比如g++未安装等,因为执行文件中含有C++程序,所以出问题。 3.动静态库问题部分是转载 在Linux上编译google protobuff时,configure 默认选项是生成动态库,即libprotobuf.so文件。如果同时在多个动态库(动态库以 dlopen方式动态加载 )中使用同一buff结构,则运行时会报错误: ibprotobuf ERROR google/protobuf/descriptor_database.cc:57] File already exists in database: foo

记录protobuf和grpc的操作过程

半腔热情 提交于 2019-12-05 00:29:41
1 安装protobuf 1.1 进入 https://github.com/google/protobuf/releases 获取特定release版本的安装包 1.2 解压 tar xzvf protobuf-all-3.5.1.tar.gz 1.3 配置 cd protobuf-3.5.1 && ./configure 1.4 编译 make 如上图所以编译成功。 1.5 安装 make install 2 支持go语言 go get -a github.com/golang/protobuf/protoc-gen-go 3 安装gRPC go get -u -v google.golang.org/grpc 4 例子 syntax = "proto3"; option go_package = "github.com/grpc/example/helloworld"; package helloworld; // The greeting service definition. service Greeter { // Sends a greeting rpc SayHello (HelloRequest) returns (HelloReply) {} } // The request message containing the user's name. message

关于使用protobuf出现undefined reference 的问题

橙三吉。 提交于 2019-12-05 00:29:30
菜就是菜,解决一个undefined reference都用这么长时间。 最近计划边学边写一个基于protobuf的RPC框架,结果第一步就遇到这个问题了。网上找了好久才一步一步解决问题,看来还有很长的路要走。 首先参考了这篇博客http://www.cppblog.com/colorful/archive/2012/05/05/173761.html,是protobuf库的问题。 1、cd protobuf-2.1.0 ./configure --prefix=/usr/local/protobuf make make check make install 2 、sudo gedit /etc/profile 添加export PATH=$PATH:/usr/local/protobuf/bin/ export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/ 保存执行 source /etc/profile 3 、 配置动态链接库路径 sudo gedit /etc/ld.so.conf 插入:include /usr/local/protobuf/lib 4、sudo ldconfig 5、 protoc -I=. --cpp_out=. /addressbook.proto 6、 g++ msg.pb.cc write

go 使用protobuffer proto3

回眸只為那壹抹淺笑 提交于 2019-12-05 00:28:51
1、 获取 Protobuf 编译器 protoc,跟C++通用的;可以在git下载到二进制文件 2、 获取 goprotobuf 提供的 Protobuf 编译器插件 protoc-gen-go go get github.com/golang/protobuf/protoc-gen- go 将protoc-gen- go 二进制执行程序所在的目录加入到环境变量,或者直接将二进制文件拷贝到 protoc 所在的目录 3. 获取 goprotobuf 提供的支持库,包含诸如编码(marshaling )、解码(unmarshaling )等功能 go get github.com/golang/protobuf/ proto 4、测试协议 msg.proto: syntax = "proto3"; package Im; message helloworld { int32 id = 1; // ID string str = 2; // str int32 opt = 3; //optional field } 5、协议文件得到go文件 protoc --go_out=. msg.proto msg.pb.go 的内容如下(可以看出proto2中原有的每个字段读取的方法去掉了,现在proto3是直接访问): // Code generated by protoc-gen-go.

grpc环境介绍

。_饼干妹妹 提交于 2019-12-04 23:48:10
grpc是一种远程调用它的底层依靠: 1. Protocolbuffer协议传输信息的. 优点: 可以使用不同的语言通讯。 2. 采用HTTP/2 协议 . 优点: 多路复用,头信息压缩, 支持服务器主动推送, 可以划分优先级 Golang环境下,安装grpc环境: 1. 安装protocolbuffer 版本3以上 2. 将proto协议转化成go,需要安装一个插件protoc-gen-go 3. 安装grpc go get -u google.golang.org/grpc #安装protobuf #https://github.com/protocolbuffers/protobuf/releases #安装插件 go get -u github.com/golang/protobuf/protoc-gen-go #我们使用helloworld.proto编程成go protoc -I hellowork/ hellowork/hellowork.proto --go_out=plugins=grpc:. 如果要编译成js需要安装 download: https://github.com/grpc/grpc-web 例如: protoc echo.proto --grpc-web_out=import_style=commonjs,mode=grpcwebtext:. -