gRPC系列之Protobuf的安装和使用 - Go语言中文社区

gRPC系列之Protobuf的安装和使用


gRPC系列之Protobuf的安装和使用

Protobuf是Protocol Buffers的简称,它是Google公司开发的一种数据描述语言,并于2008年对外开源。Protobuf刚开源时的定位类似于XML、JSON等数据描述语言,通过附带工具生成代码并实现将结构化数据序列化的功能。但是我们更关注的是Protobuf作为接口规范的描述语言,可以作为设计安全的跨语言PRC接口的基础工具。

1.安装Protocol Buffers

1.1 Ubuntu下,源码安装

github上下载自己想要的版本,建议下载all版本 ,我下载的是protobuf-all-3.10.0.zip包

下载好后,解压,切换到对应根目录下,编译安装:

protobuf默认安装在 /usr/local 目录
你可以修改安装目录通过 ./configure --prefix=命令
虽然我是root用户但觉得默认安装过于分散,所以统一安装在/usr/local/protobuf下

$./configure --prefix=/usr/local/protobuf
$ make             //编译未编译的依赖包  #要编译很久
$ make check       //检查依赖包是否完整
$ make install     //开始安装Protocol Buffer

添加到系统的环境变量中:

vim  /etc/profile

打开配置文件,在该文件中添加下面内容,配置环境变量:

####### add protobuf lib path ########
#(动态库搜索路径) 程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/protobuf/lib/
#(静态库搜索路径) 程序编译期间查找动态链接库时指定查找共享库的路径
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/protobuf/lib/
#执行程序搜索路径
export PATH=$PATH:/usr/local/protobuf/bin/
#c程序头文件搜索路径
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/protobuf/include/
#c++程序头文件搜索路径
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/protobuf/include/
#pkg-config 路径
export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/
######################################

然后保存退出,执行:

source /etc/profile

检查 Protocol Buffer 是否安装成功

// 在终端下输入
protoc --version

1.2 Windows下安装

github上下载windows版本的Protocol Buffers,我下载的是 protoc-3.10.0-win64.zip

下载好后直接解压,就可以运行了

但是如果要再任意的地方运行,需要将其添加到环境变量中,如图所示:

win下的环境变量配置

打开终端,输入:

λ protoc --version
libprotoc 3.10.0

成功!!!

2.简单的使用

proto语言编写参考 go语言高级编程

切换到要使用的proto文件路径下,并打开cmd窗口执行以下命令:

protoc --java_out=${OUTPUT_DIR} path/to/your/proto/file

例子:

我的.proto文件放在本目录下,希望java版本的proto文件也输出到本目录下,则:

protoc --java_out=./ test_hello.proto

如果是c++版本的话则需要写成:--cpp_out

其他版本的输出,可以参考下图:

各个版本的输出命令

输出之后程序命名一般为:

test_hello_pb2.py或TestHello.java格式,根据语言而变化
版权声明:本文来源简书,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://www.jianshu.com/p/b49aceff9da1
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-02-02 14:54:28
  • 阅读 ( 1290 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢