Protobuf下载和编译

2023-11-09


系列导航

(一)Protobuf下载和编译
(二)Protobuf在Java中的简单使用


一、简介

protobuf全称Google Protocol Buffers,是google开发的的一套用于数据存储,网络通信时用于协议编解码的工具库。是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。

Protocol Buffers 是一种灵活,高效,自动化机制的结构数据序列化方法-可类比 XML,但是比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单。



二、编译

注: 这里使用protobuf2.5作为示例。

下载官网: protobuf官方下载地址


(一)windows

从官网下载到protobuf-2.5.0.zip和protoc-2.5.0-win32.zip。

编译

  1. 解压protobuf-2.5.0.zip。
  2. 解压protoc-2.5.0-win32.zip,将protoc.exe放入C:\Windows\System32下和第一步解压出来的目录protobuf-2.5.0\src下。
  3. 进入protobuf-2.5.0\java下,使用maven package编译,然后在target下会生成protobuf-java-2.5.0.jar文件(编译会有些坑,若编译出问题可以直接下载protobuf-java-2.5.0.jar)。

(二)linux

从官网下载protobuf-2.5.0.tar.gz。

编译

  1. 解压protobuf-2.5.0.tar.gz并进入目录中。
  2. 安装依赖。
apt-get install -y gcc g++;
apt-get install protobuf-compile;
  1. ./configure --prefix=/usr/local/protobuf (这个是配置生成的文件位置)。
  2. make && make install
  3. 可以看到/usr/local/protobuf目录下有bin、include和lib目录。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Protobuf下载和编译 的相关文章

  • Mockito:如何通过模拟测试我的服务?

    我是模拟测试新手 我想测试我的服务方法CorrectionService correctPerson Long personId 实现尚未编写 但这就是它将执行的操作 CorrectionService将调用一个方法AddressDAO这将
  • Java 枚举与创建位掩码和检查权限的混淆

    我想将此 c 权限模块移植到 java 但是当我无法将数值保存在数据库中然后将其转换为枚举表示形式时 我很困惑如何执行此操作 在 C 中 我创建一个如下所示的枚举 public enum ArticlePermission CanRead
  • 动态选择端口号?

    在 Java 中 我需要获取端口号以在同一程序的多个实例之间进行通信 现在 我可以简单地选择一些固定的数字并使用它 但我想知道是否有一种方法可以动态选择端口号 这样我就不必打扰我的用户设置端口号 这是我的一个想法 其工作原理如下 有一个固定
  • org.apache.hadoop.security.AccessControlException:客户端无法通过以下方式进行身份验证:[TOKEN,KERBEROS] 问题

    我正在使用 java 客户端通过 Kerberos 身份验证安全访问 HDFS 我尝试打字klist在服务器上 它显示已经存在的有效票证 我收到的异常是客户端无法通过以下方式进行身份验证 TOKEN KERBEROS 帮助将不胜感激 这是一
  • 为什么同一个curl命令在windows和linux下输出不同的东西?

    为什么同样的curl o file https www link com 命令输出不同的东西 例如 如果我运行命令curl o source txt https www youtube com playlist list PLIx6Fwnp
  • 在 Jar 文件中运行 ANT build.xml 文件

    我需要使用存储在 jar 文件中的 build xml 文件运行 ANT 构建 该 jar 文件在类路径中可用 是否可以在不分解 jar 文件并将 build xml 保存到本地目录的情况下做到这一点 如果是的话我该怎么办呢 Update
  • 在接口中使用默认方法是否违反接口隔离原则?

    我正在学习 SOLID 原则 ISP 指出 客户端不应被迫依赖于他们所使用的接口 不使用 在接口中使用默认方法是否违反了这个原则 我见过类似的问题 但我在这里发布了一个示例 以便更清楚地了解我的示例是否违反了 ISP 假设我有这个例子 pu
  • Java 公历日历更改时区

    我正在尝试设置 HOUR OF DAY 字段并更改 GregorianCalendar 日期对象的时区 GregorianCalendar date new GregorianCalendar TimeZone getTimeZone GM
  • Java 集合的并集或交集

    建立并集或交集的最简单方法是什么Set在 Java 中 我见过这个简单问题的一些奇怪的解决方案 例如手动迭代这两个集合 最简单的单行解决方案是这样的 set1 addAll set2 Union set1 retainAll set2 In
  • 无法创建请求的服务[org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]-MySQL

    我是 Hibernate 的新手 我目前正在使用 Spring boot 框架并尝试通过 hibernate 创建数据库表 我知道以前也问过同样的问题 但我似乎无法根据我的环境找出如何修复错误 休眠配置文件
  • 将 MOXy 设置为 JAXB 提供程序,而在同一包中没有属性文件

    我正在尝试使用 MOXy 作为我的 JAXB 提供程序 以便将内容编组 解组到 XML JSON 中 我创建了 jaxb properties 文件 内容如下 javax xml bind context factory org eclip
  • volatile、final 和synchronized 安全发布的区别

    给定一个带有变量 x 的 A 类 变量 x 在类构造函数中设置 A x 77 我们想将 x 发布到其他线程 考虑以下 3 种变量 x 线程安全 发布的情况 1 x is final 2 x is volatile 3 x 设定为同步块 sy
  • java for windows 中的文件图标叠加

    我正在尝试像 Tortoise SVN 或 Dropbox 一样在文件和文件夹上实现图标叠加 我在网上查了很多资料 但没有找到Java的解决方案 Can anyone help me with this 很抱歉确认您的担忧 但这无法在 Ja
  • Eclipse 选项卡宽度不变

    我浏览了一些与此相关的帖子 但它们似乎并不能帮助我解决我的问题 我有一个项目 其中 java 文件以 2 个空格的宽度缩进 我想将所有内容更改为 4 空格宽度 我尝试了 正确的缩进 选项 但当我将几行修改为 4 空格缩进时 它只是将所有内容
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • 不接受任何内容也不返回任何内容的函数接口[重复]

    这个问题在这里已经有答案了 JDK中是否有一个标准的函数式接口 不接受也不返回任何内容 我找不到一个 像下面这样 FunctionalInterface interface Action void execute 可运行怎么样 Functi
  • 专门针对 JSP 的测试驱动开发

    在理解 TDD 到底是什么之前 我就已经开始编写测试驱动的代码了 在没有实现的情况下调用函数和类可以帮助我以更快 更有效的方式理解和构建我的应用程序 所以我非常习惯编写代码 gt 编译它 gt 看到它失败 gt 通过构建其实现来修复它的过程
  • 最新的 Hibernate 和 Derby:无法建立 JDBC 连接

    我正在尝试创建一个使用 Hibernate 连接到 Derby 数据库的准系统项目 我正在使用 Hibernate 和 Derby 的最新版本 但我得到的是通用的Unable to make JDBC Connection error 这是
  • Android:无法使用 DbHelper 和 Contract 类将数据插入 SQLite

    public class Main2Activity extends AppCompatActivity private EditText editText1 editText2 editText3 editText4 private Bu
  • 我如何在java中读取二进制数据文件

    因此 我正在为学校做一个项目 我需要读取二进制数据文件并使用它来生成角色的统计数据 例如力量和智慧 它的设置是让前 8 位组成一个统计数据 我想知道执行此操作的实际语法是什么 是不是就像读文本文件一样 这样 File file new Fi

随机推荐

  • Cannot download sources Sources not found for 问题解决方案

    idea下载文件源码时报Cannot download sources Sources not found for org apache tomcat embed tomcat embed core 8 5 32 错误 解决方案 在mave
  • linux top交叉编译_ARM Linux 交叉编译 工具链 制作攻略

    ARM Linux 交叉编译 工具链 制作攻略 2007 06 25 20 04 0 制作之前确保你的机子上有如下几个工具 bison flex build essential build essential 主要是用于提供GCC GLIB
  • 利用jawin完成调用window中dll的调用

    最近由于项目的特殊需求 我们必须在程序调用window的dll 开始我们用jni 后来由于调用的dll太多 而且很烦琐 所以 我们决定用开源的jawin调用 jawin 可以对dll中的方法进行调用 也可以调用com中的方法 内部还提供了一
  • vue 全局指令实现防止按钮重复点击 防抖

    vue 全局指令实现防止按钮重复点击 防抖 指令代码 通过为按钮设置disabled属性在3秒内阻止重复点击 设置定时器在3秒后移除disabled属性 export const preventClick inserted el bindi
  • B站 马士兵Python 入门基础版 - 课程笔记

    视频传送门 https www bilibili com video BV1wD4y1o7AS 记得三连 文章目录 print的规则 数字类型 类型转换 Python中的运算符 链式赋值 参数赋值 位运算符 运算符的优先级 程序的组织结构
  • 文本编辑框的右键菜单不可修改?

    最近写了个小工具 用来处理特定的文字编辑任务 编辑后的内容通过剪贴板复制到其他的程序中 全选 gt 复制 gt 切换到其他程序 gt 全选 gt 粘帖 这本是个极简单的操作过程 不过操作的次数多了 还是觉得不胜其烦 就想把这个操作在精简一下
  • RabbitMQ 报错:connection error; (reply-code=530, reply-text=NOT_ALLOWED - XXX(Hosts名) / not found)

    背景 项目使用了 Spring Cloud Bus RabbitMQ 作为消息代理 想要做到通过访问暴露的触发消息总线地址来达到开发人员变更 Gitee 上的配置文件后可以自动拉取更新的效果 但是访问暴露的触发消息总线地址后 RabbitM
  • 实时渲染学习(十)渲染加速算法总结

    参考博文 Real Time Rendering 3rd 提炼总结 十一 第十四章 游戏开发中的渲染加速算法总结 前言 本章主要介绍了一些加速渲染算法 个人认为了解这些加速技术还是很重要的 本章知识概览 常用空间数据结构 Spatial D
  • Shell编程规范及变量

    目录 一 Shell脚本编程概述 1 1Shell的作用 1 1 1Shell基本概念 1 1 2Shell脚本应用场景 1 1 3Shell作用 翻译官 1 1 4linux中有哪些Shell 1 1 4 为什么系统上合法的Shel1要写
  • 用于创建此对象的程序是 Equation。您的计算机尚未安装此程序或此程序无响应。 若要编辑此对象,请安装 Equation或确保 Equation中的任何对话框都已关闭

    用于创建此对象的程序是 Equation 您的计算机尚未安装此程序或此程序无响应 若要编辑此对象 请安装 Equation或确保 Equation中的任何对话框都已关闭 一 问题描述 在Word中打开公式编辑器mathtype时出现 用于创
  • Distcc

    由于通过google git提取的android源代码没有配置分布式编译 需要借助一些工具搭建一个分布式编译环境来提升android编译速度 下面的步骤是在centos 5 2上进行的 我们可以参考一下 1 安装distcc RPM包 rp
  • impala/spark/hive/presto常见的命令汇总

    1 impala spark常见的命令汇总 常见命令 impala spark sql create语句 CREATE TABLE IF NOT EXISTS my db student name STRING age INT contac
  • #pragma once 是什么意思?

    和头文件中用 ifndef A H define A H Here is code endif 效果类似 包含pragma once语句的文件只会被编译一次 表示在编译的时候 这个文件只被包含 include 一次 这样 可以减少整个编译过
  • PHP框架的基本原理以及选择标准

    PHP框架的原理 说到PHP框架 可能很多PHP新手会感到有些胆怯 其实 PHP框架也不是那么深不可测的 框架就是别人使用PHP基础只是为你写好了的东西 只是封装在一起 这就好比我们使用PHP的函数 函数都是已近写好了的 我们只要按照函数使
  • 图解LeetCode——1812. 判断国际象棋棋盘中一个格子的颜色(难度:简单)

    一 题目 给你一个坐标 coordinates 它是一个字符串 表示国际象棋棋盘中一个格子的坐标 下图是国际象棋棋盘示意图 如果所给格子的颜色是白色 请你返回 true 如果是黑色 请返回 false 给定坐标一定代表国际象棋棋盘上一个存在
  • C/C++

    文章目录 常见面试题目讲解 宏定义 数据声明 类型修饰符的使用总结 位操作 访问固定内存位置 参考 麦子学院 嵌入式C语言高级 C语言函数的使用 常见面试题目讲解 参考 嵌入式程序员应该知道的0x10个基本问题 常见面试题目讲解 宏定义 1
  • Java设计模式——装饰者模式

    装饰者模式 一 概述 装饰者模式 装饰器模式 是一种结构型模式 定义 在不改变现有对象结构的情况下 动态地给该对象增加一些额外职责 功能 的模式 装饰者 Decorator 模式中的角色 抽象构件 Component 角色 定义一个抽象接口
  • 7-44 求整数的位数及各位数字之和

    对于给定的正整数N 求它的位数及其各位数字之和 输入格式 输入在一行中给出一个不超过109的正整数N 输出格式 在一行中输出N的位数及其各位数字之和 中间用一个空格隔开 输入样例 321 输出样例 3 6 include
  • Tomcat流程图分析

    org apache catalina startup Bootstrap 启动类 初始化步骤 从server开始到service connector 后实现了lifecycle 接口 bootstrape init gt catelina
  • Protobuf下载和编译

    系列导航 一 Protobuf下载和编译 二 Protobuf在Java中的简单使用 一 简介 protobuf全称Google Protocol Buffers 是google开发的的一套用于数据存储 网络通信时用于协议编解码的工具库 是