Google Protocol Buffers在linux环境下的安装

本文详细介绍了在Linux环境下安装与配置Google Protocol Buffers的过程,包括系统版本检查、protoc编译器安装、解决依赖问题以及通过Maven生成Java版本库文件等关键步骤。

Written by NathanLiu

Linux 下安装Google Protocol Buffers

1、系统版本信息查看

内核版本:uname -a || cat /proc/version

当前操作系统版本: cat /etc/issue || lsb_release -a    ||     cat /etc/redhat-release 

2、安装protoc编译器

windows先已经提供了protobuf的编译器protoc.exeLinux下因为不同的系统内核导致google不能提供相应的protoc工具。需要使用Gcc自定义安装。

运行

./configure

sudo make

sudo make check

sudo make install 

默认安装在:

/usr/local/bin/protoc

/usr/local/lib/*.so

安装完成之后,运行 protoc --version

会出现异常:

protoc: error while loading shared libraries: libprotobuf.so.7: cannot open shared object file: No such file or directory

因为有些版本的linux不会将/usr/local/lib设置到 $LD_LIBRARY_PATH变量中。需要在root用户(或者 sudo) 下修改/etc/profile(或者 ~/.bashrc)文件,将/usr/local/lib设置到 $LD_LIBRARY_PATH变量中。

重新载入 source /etc/profile. 

查看 env命令

之后使用普通用户运行portoc --version(注意:protoc 及相关的so文件执行权限应修改为777)

如果依然出现此问题,则再次进入root,运行ldconfig 更新LD_LIBRARY_PATH的缓存,即更新/etc/ld.so.cache。

退出root,再次运行protoc --version

或者:

sudo ./configure  --prefix=/usr

如果不设置这个参数,protobufinclude 和  lib 会安装到/usr/local下去,导致protoc找不到依赖的.so库,需要重新设置环境变量。有了这个参数后就可以一步到位,比较方便。

3、linux生成protobuf-java-*.jar

3.1 配置linux下的maven环境。 注意:设置$M2_HOME$PATH变量

3.2 进入protobuf文件夹,mvn package即可生成 protobuf-java-*.jar。注意src文件中protoc编译器的执行权限(同 /usr/local/bin/protoc)

参考:http://code.google.com/p/protobuf/issues/detail?id=213

进一步的使用:http://www.kangye.org/try-google-protocol-buffers



来源:https://github.com/google/protobuf/releases protocolbuffer(以下简称PB)是google 的一种数据交换的格式,它独立于语言,独立于平台。google 提供了多种语言的实现,如:java、c#、c++、javascript、go 、python、ruby和php等,每一种实现都包含了相应语言的编译器以及库文件。由于它是一种二进制的格式,比使用 xml 进行数据交换快许多。可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制数据传输格式,可以用于诸如网络传输、配置文件、数据存储等诸多领域。 本资源包含: protobuf-all-3.6.0.tar.gz 8.25 MB protobuf-all-3.6.0.zip 4.25 MB protobuf-cpp-3.6.0.tar.gz 5.18 MB protobuf-cpp-3.6.0.zip 4.57 MB protobuf-csharp-3.6.0.tar.gz 5.66 MB protobuf-csharp-3.6.0.zip 4.7 MB protobuf-java-3.6.0.tar.gz 5.86 MB protobuf-java-3.6.0.zip 4.4 MB protobuf-js-3.6.0.tar.gz 5.43 MB protobuf-js-3.6.0.zip 4.59 MB protobuf-objectivec-3.6.0.tar.gz 5.69 MB protobuf-objectivec-3.6.0.zip 4.6 MB protobuf-php-3.6.0.tar.gz 5.64 MB protobuf-php-3.6.0.zip 4.53 MB protobuf-python-3.6.0.tar.gz 5.57 MB protobuf-python-3.6.0.zip 4.52 MB protobuf-ruby-3.6.0.tar.gz 5.5 MB protobuf-ruby-3.6.0.zip 1.46 MB protoc-3.6.0-linux-aarch_64.zip 1.31 MB protoc-3.6.0-linux-x86_32.zip 1.36 MB protoc-3.6.0-linux-x86_64.zip 2.44 MB protoc-3.6.0-osx-x86_32.zip 2.39 MB protoc-3.6.0-osx-x86_64.zip 984 KB protoc-3.6.0-win32.zip Source code (zip) Source code (tar.gz)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值