热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ProtocolBuffers安装使用笔记

最近了解到一个东西叫protobuf,也就是标题里提到的那个。此物为Google出品,因此准备学习一下。不了解的同学请自行度娘。本文仅在Ubuntu15.04x64环境验证,其他环

最近了解到一个东西叫protobuf,也就是标题里提到的那个。此物为Google出品,因此准备学习一下。

不了解的同学请自行度娘。本文仅在Ubuntu15.04 x64环境验证,其他环境请大家自行调整呀。

下载

首先呢,protobuf是Google出品,且已经开源到GitHub上了,因此我们可以不用翻墙就可以使用这个东东,链接在这里,而经常泡GitHub的同学肯定知道下面这个命令是啥意思啦:

git clone https://github.com/x13945/protobuf.git

安装

安装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目录:

  1. 测试安装环境是否正常:
mvn test

如果结果里有失败项,说明这个库在你的环境里工作得不是特别好,能用,但是会有风险。我没有遇到失败,因此就不说咋解决了。

  1. 把这个库安装到你的maven仓里。
mvn install
  1. 打包
mvn package

之后会在target目录里生成一个jar文件。就是我们需要的。

今天的东西就到这里了,以后的博客我大概会写一下怎么使用这个jar包,敬请期待:)


推荐阅读
  • 自动化部署服务——AWS CodeDeploy 快速入门
    https:amazonaws-china.comcnblogschinagetting-started-with-codedeploy作为DevOps和微服务的深入践行者 ... [详细]
  • [ipsec][strongswan]strongswan源码分析(五)plugin的配置文件的添加方法与管理架构解析
    我们知道,strongswan是基于插件式管理的。不同的插件有不同的配置文件,在这下面,我们以netlink的插件为例:etcstrongswan.dcharonkernel-ne ... [详细]
  • nvmw安装,用于控制node版本;
    之前一直使用的是nodev2.2.0版本,挺说新版本的node解决了npm安装插件产生文件夹结构过深的问题,所以就想更新试试;上网一看才发现,尼玛的node已经到了6.+版本了,好 ... [详细]
  • 系统管理部分软件包管理进程管理服务管理磁盘管理系统管理之软件包管理软件包的安装方式yumapt方式rpmdpkg方式编译安装方式二进制安装方式rpm安装方式增删改查安装:-ivh查 ... [详细]
  • kali激活成功教程软件_kali渗透教程转载请注明出处:https:blog.csdn.netl1028386804articledetails84895163VeilEvasi ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • CentOS8.4 安装PHP7.4.25
    1、下载官网:https:www.php.netdownloads#cdmydata#wgethttps:www.php.netdistributionsphp ... [详细]
  • PHP 扩展编译的通用方法
    2019独角兽企业重金招聘Python工程师标准以memcache扩展为例子首先需要到软件的官方(如memcached的地址http:pecl.php.netp ... [详细]
  • 本文翻译自:WhatisaMavenartifact?什么是神器?为什么Maven需要它?#1楼参考:https:sta ... [详细]
  • FluxCD、ArgoCD或Jenkins X,哪个才是适合你的GitOps工具?
    GitOps是一种使用基于Git的工作流程来全面管理应用和基础设施的想法,其在最近获得了极大关注。新一代的部署工具更能说明这一点,它们将GitOps作为 ... [详细]
  • 安全加密C语言库OpenSSL,在Android中服务器和客户端之间的签名验证和数据加密通信等。OpenSSL系列文章:一、AndroidCMake轻松 ... [详细]
  • 标签PostgreSQL,Linux,perf,性能诊断,stap,systemtap,strace,dtrace,dwarf,profiler,perf_events,probe ... [详细]
  • hibernate映射组件映射
    在Hibernate中,component是某个实体的逻辑组成部分,它与实体的根本区别是没有oid(对象标识符),compo ... [详细]
  • 在ROS系统中,参数读写一般通过xml或者yaml格式的文件,其中yaml用得比较多。这是一种可读性高,轻量级的标记语言,简单好用。对于yaml文件,ros中用的较早版本的yaml- ... [详细]
  • 开发笔记:googletest安装与使用
    本文由编程笔记#小编为大家整理,主要介绍了googletest安装与使用相关的知识,希望对你有一定的参考价值。简介googletest是Google公司 ... [详细]
author-avatar
mobiledu2502860217
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有