转自:http://m.blog.csdn.net/blog/liu251/6730447
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.exe。Linux下因为不同的系统内核导致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
如果不设置这个参数,protobuf的include 和 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
分享到:
相关推荐
可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制数据传输格式,可以用于诸如网络传输、配置文件、数据存储等诸多领域。 本资源包含: protobuf-all-3.6.0....
Protocol Buffers - Google's data interchange format Copyright 2008 Google Inc. https://developers.google.com/protocol-buffers/ This package contains a ... https://github.com/protocolbuffers/protobuf
Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化...
最近项目需要使用google 的protocol buffers,就看了下protobuf相关内容,发现网上中文资料大多停留在protobuf2阶段,经查阅protobuf已经更新到3.11.4版本了,并且3系列比2优化的内容更多,使用也更方便。下面记录下...
(内附源码编译文档)Protocol buffers是一个灵活的、高效的、自动化的用于对结构化数据进行序列化的协议,与XML相比,Protocol buffers序列化后的码流更小、速度更快、操作更简单。
Protobuf是Protocol Buffers的简称,它是Google公司开发的一种数据描述语言,是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做**数据存储**或 **RPC 数据交换格式**。可...
Sandstorm 是国外一款开源的项目,是由我们熟知的开发Protocol Buffers的前谷歌工程师 Kenton Varda 创立的,旨在基本改变现有的网络应用方式,目前已被数百个技术公司使用。后续又发展了Cap'n Proto。什么是 ...
Protocol Buffers - Google 的数据交换格式 - 新的 Windows 终端和原始的 Windows 控制台主机 - 都在同一个地方! CSS —— :popcorn: 一个跨浏览器的 CSS 动画库。 像一件简单的事情一样容易使用。 - 基于 Flexbox ...
protoc-jar 协议缓冲区protobuf编译器-多平台可执行协议JAR和API。...Google现已支持在POWER8平台上Linux(linux-ppcle_64) 较旧的版本(最高3.6.0),这要归功于( ) Google现已支持ARM平台(linux-aarch_64)上Li
简单的maven插件,可使用protoc 嵌入式protoc编译器来编译.proto文件,从而在主要平台(Linux,Mac / OSX和Windows)上提供了一些可移植性。 在构建时,插件会检测平台并执行相应的协议二进制文件。 支持嵌入式...
ICS - Internet Component Suite - V8 - Delphi 7 to RAD Studio 10 Seattle ======================================================================= (Aka FPIETTE's Components) Revised: March 3, 2016 ...