日期:2014-05-16  浏览次数:20714 次

Google Protocol Buffers在linux环境下的安装
转自: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