`

Protobuf 的安装使用总结

阅读更多
ProtoBuf的官方下载包并不包含jar文件,需要用户自己来自行编译。
下载
protobuf-2.5.0.tar.gz
(ProtoBuf的源文件(包含了C++/Java/Python)的源文件)
protoc-2.5.0-win32.zip
(已经编译过的用于Windows平台的protoc命令,该命令用于将.proto文件转化为Java或C++源文件)
注意,以上两个文件的版本必须匹配一致
分别解析这两个文件,你可以在protoc-2.4.1-win32.zip解压后的文件中找到一个protoc.exe文件,将其copy到protobuf-2.5.0/src目录下,然后进入protobuf-2.5.0/java
mvn install
如果没有安装maven的话,可以参考这篇文章:
Linux/Windows下安装Maven
http://blog.csdn.net/jiangguilong2000/article/details/9284437
编译完成后可以在protobuf-2.5.0/java/target目录中找到protobuf-2.5.0.jar文件
如果要生成plugin.java文件在\java\target\generated-sources\com\google\protobuf\compiler\PluginProtos.java,则需要修改\java\pom.xml里添加这样一行
  <tasks>
                <mkdir dir="target/generated-sources" />
                <exec executable="../src/protoc">
                      <arg value="--java_out=target/generated-sources" />
                      <arg value="--proto_path=../src" />
                      <arg value="../src/google/protobuf/descriptor.proto" />
                      <arg value="../src/google/protobuf/compiler/plugin.proto" />
                </exec>
    </tasks>
把protobuf-2.5.0.jar,protoc.exe,PluginProtos.java 替换到自动生成代码的工具里,升级完成。

option optimize_for = LITE_RUNTIME;
      optimize_for是文件级别的选项,Protocol Buffer定义三种优化级别SPEED/CODE_SIZE/LITE_RUNTIME。缺省情况下是SPEED。
      SPEED: 表示生成的代码运行效率高,但是由此生成的代码编译后会占用更多的空间。
      CODE_SIZE: 和SPEED恰恰相反,代码运行效率较低,但是由此生成的代码编译后会占用更少的空间,通常用于资源有限的平台,如Mobile。
      LITE_RUNTIME: 生成的代码执行效率高,同时生成代码编译后的所占用的空间也是非常少。这是以牺牲Protocol Buffer提供的反射功能为代价的。因此我们在C++中链接Protocol Buffer库时仅需链接libprotobuf-lite,而非libprotobuf。在Java中仅需包含protobuf-java-2.4.1-lite.jar,而非protobuf-java-2.4.1.jar。
      注:对于LITE_MESSAGE选项而言,其生成的代码均将继承自MessageLite,而非Message。
分享到:
评论

相关推荐

    eclipse protobuf 安装配置示例

    总结来说,Eclipse Protobuf的安装配置涉及到下载安装protoc编译器,安装Eclipse Protobuf插件,创建protobuf工程,编写.proto文件,生成源代码,并在其他项目中使用这些代码进行数据交换。了解并熟练掌握这些步骤,...

    ubuntu-ubuntu安装protobuf.pdf

    #### 二、Ubuntu环境下Protobuf安装步骤 ##### 1. 克隆Protobuf仓库 首先需要从GitHub上克隆Protobuf的源代码仓库。可以通过下面的命令来执行: ```bash git clone --recursive ...

    fdbus编译代码(涉及protobuf编译)-总结

    尽量不要直接将fdbus和protobuf安装到Ubuntu环境中,建议创建一个install文件夹专门存放这些组件。 2. 确保将proto文件生成的.cc文件编译进工程执行文件中,否则会出现未定义符号的错误。 3. CMakeLists中链接...

    在erlang项目中使用protobuf例子

    1. **protobuf安装与编译**:首先,你需要在Erlang项目中安装protobuf的Erlang库,这通常通过rebar3或erlang.mk等构建工具完成。接着,你需要为protobuf消息定义一个`.proto`文件,例如`test.proto`,其中包含数据...

    QT下使用的Protobuf(Protocol Buffer)动态链接库

    在QT中使用Protobuf,首先需要安装和配置好Protobuf的编译环境,包括安装protoc编译器和相关的头文件。然后,需要下载或编译适合QT的动态库文件(如libprotobuf.dll、libprotobuf-lite.dll等)。接着,将这些动态库...

    交叉编译 protobuf2.4 库 实现在arm平台上使用

    在本文中,将详细介绍如何在Ubuntu操作系统环境下安装和交叉编译protobuf 2.4版本库,以便它能在ARM平台上运行。首先,了解protobuf是Google开发的开源协议库,用于序列化结构化数据,广泛应用于网络通信和数据存储...

    protobuf demo

    在使用protobuf之前,需要先安装protobuf编译器。对于不同的操作系统,安装步骤略有不同,但通常包括下载源码、编译和安装。在完成安装后,可以使用`protoc`命令来编译.proto文件。 **IntelliJ IDEA集成protobuf** ...

    Laya里静态使用protobuf.docx

    - 使用npm安装`protobufjs`和`@egret/protobuf`这两个库: ```shell npm install protobufjs@6.8.4 npm install @egret/protobuf ``` 3. **项目结构准备**: - 将protobuf相关的文件放置于项目的`bin`目录下...

    protobuf-cpp-3.2.0.tar.gz

    protobuf-cpp-3.2.0.tar.gz是一个包含C++版本Protocol Buffers(通常称为protobuf)的压缩包,版本号为3.2.0。Protocol Buffers是Google开发的一种数据...正确安装和使用protobuf库对于充分利用OpenCV的潜力至关重要。

    protobuf-master下载

    总结来说,protobuf-master下载是获取protobuf的源代码,以便自建编译器和库,适用于需要自定义编译或对protobuf有深度定制需求的开发者。通过protobuf,开发者可以创建高效的、跨平台的数据交换格式,提升应用程序...

    在 Ubuntu 上安装 Protobuf 3 的教程详解

    总结来说,本教程详细介绍了如何在 Ubuntu 系统上安装 Protobuf 3,包括安装的必要性、可能出现的问题及其解决方案。遵循这些步骤,你应该能够顺利地在你的 Ubuntu 环境中安装并使用 Protobuf 3。请记住,如果在安装...

    lua protobuf in c++

    总结起来,这个项目展示了如何在C++和Lua之间使用protobuf进行跨语言的数据交换。通过使用`protoc-gen-lua`生成的Lua绑定,开发者可以在Lua环境中方便地序列化和反序列化protobuf消息,这对于多语言环境下的数据通信...

    protobuf vs版本

    总结来说,"protobuf vs版本"关注的是在Visual Studio环境下编译和使用protobuf的流程,这对于在Windows平台上使用C++或其他支持protobuf的语言进行开发的程序员来说是至关重要的。理解并熟练掌握这一过程,有助于...

    C++ VS2019 编译的protobuf3.11.4 MT版和MD版

    在本文中,我们将深入探讨如何在Visual Studio 2019环境下使用C++编译protobuf 3.11.4库,包括MT(多线程)和MD(多线程DLL)版本。protobuf是Google开发的一种高效、灵活的序列化框架,广泛应用于数据存储、网络...

    protobuf-2.5.0-windows.zip工具

    对于protobuf-2.5.0-windows版本来说,readme.txt可能提供了编译器的使用指南、系统要求、安装步骤或其他重要提示。 protobuf的核心概念包括: - **.proto文件**:这是protobuf的接口定义语言(IDL),用来描述...

    ProtoBuf在win7下的示例

    在给定的"ProtoBuf在win7下的示例"中,我们主要探讨如何在Windows 7环境下,使用Visual Studio 2008(VS2008)进行ProtoBuf的安装和开发实践。 首先,要使用ProtoBuf,你需要下载并安装**ProtoBuf的SDK**。这通常...

    java生成protobufdemo直接运行

    本教程将指导你如何使用Java直接运行protobuf demo,生成protobuf所需的Java类,并展示如何读取和写入protobuf数据。 步骤1:安装protobuf编译器 首先,你需要下载并安装protobuf编译器 protoc。你可以访问protobuf...

    protobuf-net简单实例

    在`packages`文件夹中可能包含protobuf-net的NuGet包,通过安装它可以快速引入库。 - 定义数据模型:创建一个类,其中包含需要序列化的属性。protobuf-net会自动处理这些属性的序列化和反序列化。 - 应用`...

Global site tag (gtag.js) - Google Analytics