Protocol Buffers 安装使用笔记
2015-11-26 12:07
375 查看
最近了解到一个东西叫protobuf,也就是标题里提到的那个。此物为Google出品,因此准备学习一下。
不了解的同学请自行度娘。本文仅在Ubuntu15.04 x64环境验证,其他环境请大家自行调整呀。
不了解的同学请自行度娘。本文仅在Ubuntu15.04 x64环境验证,其他环境请大家自行调整呀。
下载
首先呢,protobuf是Google出品,且已经开源到GitHub上了,因此我们可以不用翻墙就可以使用这个东东,链接在这里,而经常泡GitHub的同学肯定知道下面这个命令是啥意思啦:git clone https://github.com/x13945/protobuf.git[/code]安装
安装Protocol Buffer compiler (protoc)
虽然本人开发时使用的是Java,但是这个工具依赖Protocol Buffer compiler (protoc),就需要按照下面的命令这样这样做:./autogen.sh ./configure make make check make install
不过,部分没有翻墙的同学,可能就会卡在./autogen.sh命令这里,因为这个脚本里会下载一个东东:gmock。这个东东又是需要翻墙的。原下载链接是这样滴:https://googlemock.googlecode.com/files/gmock-1.7.0.zip。鉴于部分同学不能翻墙,我就勉为其难从墙外拿了一份,放到csdn了,需要的同学自取,地址在这里:点我。然后把下载的zip文件复制到protobuf目录下,执行如下命令:unzip gmock-1.7.0.zip rm gmock-1.7.0.zip mv gmock-1.7.0 gmock
之后再次执行./autogen.sh,如果遇到autoreconf: not found这样的错误,安装下面的工具就OK了:sudo apt-get install autoconf automake libtool
之后再次执行最上面的那几句命令就行了。
不过,有些同学在执行make install时会失败,通过log看下是否是因为需要加上sudo。
下面,我们通过如下命令看一下 protoc安装情况怎么样:protoc --version
如果出现libprotoc 3.0.0
则证明成功。不过如果出现下面这个错误:protoc: error while loading shared libraries: libprotobuf.so.0: cannot open shared object file: No such file or directory 或: protoc: error while loading shared libraries: libprotoc.so.10: cannot open shared object file: No such file or directory
执行下面这个命令可以解决:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib打Jar包
作为一个第三方工具,当然是打成jar包来用才是最好的。由于这个工程的构建是通过Maven管理的。则,我们首先要配置Maven环境,先去去这个地方:点我,下载Maven,然后解压到需要的目录。之后在.bashrc或者.zshrc里配置环境变量(这个看你用的那个shell,我用的是zsh,因此使用的是后一个;而Ubuntu自带的是bash,应当在前一个里配置):export MAVEN_HOME=/home/xiao/apache-maven-3.3.9 export PATH=${PATH}:$MAVEN_HOME/bin
之后,在用户目录下,使用下面的命令让环境变量生效:source .zshrc 或 source .bashrc
下面是安装Maven后开始正式工作,之前,先把目录定位到protobuf下的java目录:
测试安装环境是否正常:mvn test
如果结果里有失败项,说明这个库在你的环境里工作得不是特别好,能用,但是会有风险。我没有遇到失败,因此就不说咋解决了。
把这个库安装到你的maven仓里。mvn install
打包mvn package
之后会在target目录里生成一个jar文件。就是我们需要的。
今天的东西就到这里了,以后的博客我大概会写一下怎么使用这个jar包,敬请期待:)
相关文章推荐
- 如何用js得到当前页面的url信息方法
- Bootstrap 标签
- js过滤HTML标签完整实例
- 利用JS验证查询参数-选择月份后必须选择年份
- 利用JS验证查询参数-选择月份后必须选择年份
- 使用EVAL处理jqchart jquery 折线图返回数据无效的解决办法
- DTCMS会员中心快速更改样式思路
- Node.js开发者必须熟悉的四个JavaScript概念
- 把PPT放入浏览器中——12款用于演示的JS库
- jQuery滑动选取数值范围插件
- [JavaScript/JQuery] jquery 复选框全选 全不选 反选
- 实习简结
- JS实现文本复制与剪切
- 浅谈Supermap iClient for JavaScript弹窗类
- 使用jQuery要注意的问题
- JSP_页面中设置引用资源的方法(basePath)
- JavaScript中的标签语句
- error at ::0 can't find referenced pointcut anyMethod
- JAVASCRIPT代码编写俄罗斯方块网页版
- 配置文件神器 typesafe conf 用法简介