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的安装配置涉及到下载安装protoc编译器,安装Eclipse Protobuf插件,创建protobuf工程,编写.proto文件,生成源代码,并在其他项目中使用这些代码进行数据交换。了解并熟练掌握这些步骤,...
#### 二、Ubuntu环境下Protobuf安装步骤 ##### 1. 克隆Protobuf仓库 首先需要从GitHub上克隆Protobuf的源代码仓库。可以通过下面的命令来执行: ```bash git clone --recursive ...
尽量不要直接将fdbus和protobuf安装到Ubuntu环境中,建议创建一个install文件夹专门存放这些组件。 2. 确保将proto文件生成的.cc文件编译进工程执行文件中,否则会出现未定义符号的错误。 3. CMakeLists中链接...
1. **protobuf安装与编译**:首先,你需要在Erlang项目中安装protobuf的Erlang库,这通常通过rebar3或erlang.mk等构建工具完成。接着,你需要为protobuf消息定义一个`.proto`文件,例如`test.proto`,其中包含数据...
在QT中使用Protobuf,首先需要安装和配置好Protobuf的编译环境,包括安装protoc编译器和相关的头文件。然后,需要下载或编译适合QT的动态库文件(如libprotobuf.dll、libprotobuf-lite.dll等)。接着,将这些动态库...
在本文中,将详细介绍如何在Ubuntu操作系统环境下安装和交叉编译protobuf 2.4版本库,以便它能在ARM平台上运行。首先,了解protobuf是Google开发的开源协议库,用于序列化结构化数据,广泛应用于网络通信和数据存储...
在使用protobuf之前,需要先安装protobuf编译器。对于不同的操作系统,安装步骤略有不同,但通常包括下载源码、编译和安装。在完成安装后,可以使用`protoc`命令来编译.proto文件。 **IntelliJ IDEA集成protobuf** ...
- 使用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是一个包含C++版本Protocol Buffers(通常称为protobuf)的压缩包,版本号为3.2.0。Protocol Buffers是Google开发的一种数据...正确安装和使用protobuf库对于充分利用OpenCV的潜力至关重要。
总结来说,protobuf-master下载是获取protobuf的源代码,以便自建编译器和库,适用于需要自定义编译或对protobuf有深度定制需求的开发者。通过protobuf,开发者可以创建高效的、跨平台的数据交换格式,提升应用程序...
总结来说,本教程详细介绍了如何在 Ubuntu 系统上安装 Protobuf 3,包括安装的必要性、可能出现的问题及其解决方案。遵循这些步骤,你应该能够顺利地在你的 Ubuntu 环境中安装并使用 Protobuf 3。请记住,如果在安装...
总结起来,这个项目展示了如何在C++和Lua之间使用protobuf进行跨语言的数据交换。通过使用`protoc-gen-lua`生成的Lua绑定,开发者可以在Lua环境中方便地序列化和反序列化protobuf消息,这对于多语言环境下的数据通信...
总结来说,"protobuf vs版本"关注的是在Visual Studio环境下编译和使用protobuf的流程,这对于在Windows平台上使用C++或其他支持protobuf的语言进行开发的程序员来说是至关重要的。理解并熟练掌握这一过程,有助于...
在本文中,我们将深入探讨如何在Visual Studio 2019环境下使用C++编译protobuf 3.11.4库,包括MT(多线程)和MD(多线程DLL)版本。protobuf是Google开发的一种高效、灵活的序列化框架,广泛应用于数据存储、网络...
对于protobuf-2.5.0-windows版本来说,readme.txt可能提供了编译器的使用指南、系统要求、安装步骤或其他重要提示。 protobuf的核心概念包括: - **.proto文件**:这是protobuf的接口定义语言(IDL),用来描述...
在给定的"ProtoBuf在win7下的示例"中,我们主要探讨如何在Windows 7环境下,使用Visual Studio 2008(VS2008)进行ProtoBuf的安装和开发实践。 首先,要使用ProtoBuf,你需要下载并安装**ProtoBuf的SDK**。这通常...
本教程将指导你如何使用Java直接运行protobuf demo,生成protobuf所需的Java类,并展示如何读取和写入protobuf数据。 步骤1:安装protobuf编译器 首先,你需要下载并安装protobuf编译器 protoc。你可以访问protobuf...
- **问题描述**:如果确实没有安装`protobuf`,或者安装的版本不兼容,则需要安装正确的版本。 - **解决方案**:根据文中提供的步骤,可以在Python安装目录下的Scripts文件夹中通过`cmd`命令行工具来安装`...