Windows环境下google protobuf入门

我使用的是最新版本的protobuf(protobuf-2.6.1),编程工具使用VS2010。简单介绍下google protobuf:

google protobuf 主要用于通讯,是google出的一个结构化信息传递工具,有着效率高、占存储少的优点,常被用于网络通讯。

Google protobuf主要是针对Linux下的开发,但是为了照顾windows的开发人员,google也给出了相应的方案。

windows下,需要下载两个包protobuf-2.6.1.tar.bz2和protobuf-2.6.1-win32.zip

下载链接http://code.google.com/p/protobuf/downloads/list

接下来是对这两个包的在windows环境下的操作:

一、假设两个包都放在G根目录下,直接将两个包解压。在G:\protobuf-2.6.1\vsprojects下有protobuf.sln这个文件,用VS2010打开,得到如下9个解决方案。

可能有些其他教程会说这里的转换会有些小问题出现,但是我执行这一步的时候,没有遇到过,是一步到位的。

二、在Solution ‘protobuf’(9 projects)那右键,点击Build Solution生成我们需要的文件。

三、完成上一步后,在G:\protobuf-2.5.0\vsprojects\Debug下会生成下面.exe文件和.lib文件

现在来使用这些生成的文件。

在G:\protobuf-2.6.1\examples下写一个person.proto文件,代码如下:

package lm;

message helloworld

{

required int32         id=1;

required string        str=2;

optional int32         opt=3;

}

打开dos命令界面(运行->cmd),切换目录到G:\protobuf-2.6.1\vsprojects\Debug下,输入命令行:protoc -I=G:\protobuf-2.6.1\examples--cpp_out=G:\protobuf-2.6.1\examples G:\protobuf-2.6.1\examples\person.proto

特别注意这里的空格。该命令的意思是让person.proto文件生成.h和.cc文件,cpp_out表示生成C++代码,cpp_out等号后面第一个路径指生成文件的存放路径,第二个指.proto文件的绝对路径。

新建一个工程,命名为Person_,将生成的person.pb.h和person.pb.cc文件导进工程,

这里需要特别注意一点:光在工程里导入文件是不够的,最好在工程目录下再将其拷贝进去,否则有可能出现下面的错误。将.pd.h和.pd.cc文件拷贝到工程目录下就不会报这样的错误。

现在开始来配置工程使用protobuf的头文件和lib文件的路径

右键工程,打开Properties(属性)

点击ConfigurationProperties(配置属性)下的C/C++General(常规),右边AdditionalInclude Directories(附加包含目录),导入这个路径G:\protobuf-2.5.0\src

再次进入配置属性,点击Linker(链接器)àGeneral(常规),右边的Additional LibraryDirectories(附加库目录),导入这个路径G:\protobuf-2.5.0\vsprojects\Debug

四、接下来编写person.cpp

#include <iostream>
#include <string>
#include "person.pb.h"

using namespace std;

int main()
{
lm::helloworld msg1;
msg1.set_id(100);
msg1.set_str("200");
msg1.set_opt(50);

cout << msg1.id() << endl;
cout << msg1.str() << endl;
cout << msg1.opt() << endl;

cin.get();
return 0;
}

饮水思源:

http://blog.csdn.net/chenkjiang/article/details/12569835

时间: 2024-12-23 12:39:26

Windows环境下google protobuf入门的相关文章

Git在windows环境下的使用教程

前言 安装 配置 关于git使用的几个问题 后记 关于代码托管,以前用过vss和svn,看博客或论坛的时候,经常有人提到github,有很多著名的开源软件都托管在github,想来肯定不错(莫笑),当然我使用git并不是它有多么的出名,最主要的还是git免费,想想现在百度开发者平台都好像开始试收费了,果断休了度娘迎娶git,随时随地check自己的代码,想想是多么美妙的一件事啊. 自己动手,丰衣足食,Let's..... 安装 在使用git之前,当然要去github官网注册账号,windows环

Windows环境下使用VS2005编译OpenSSL

如何Windows环境下,使用VS2005编译OpenSSL,虽然这个问题在Baidu.Google上一堆,但安装中还是遇到些问题,在这里 记录下来希望能帮助大家不要在走弯路.注:我是在WinXP SP3下使用VS2005SP1下编译成功的,OpenSSL的版本是0.9.8l. http://www.cnblogs.com/moonset7/archive/2009/12/18/1627317.html by 月落上弦 一.编译OpenSSL  准备工作:下载OpenSSL源码 官方网站下载Op

windows环境下的tensorflow安装

总得要不断跟得上时代与技术的步伐--机器学习终将变革我们的生活.学习与工作,也许就在不久的将来.. 今天兴致所致,准备尝试基于我大google的tensorflow搭建个学习环境,哪天说不定可以教会它玩游戏,亦或可以辅助在游戏开发中搭建一些有意思的关卡,先做积累跟培养兴趣吧.好了,废话不多说,进入正题. 看了不少的环境搭建方法,感觉都比较复杂,按照理解,首先要有python的环境(鉴于在windows环境下貌似只支持64位,最低3.5的版本),选择了python3.5.2的64位版本,可以直接进

【转】Windows环境下Android NDK环境搭建

原文网址:http://www.metsky.com/archives/525.html 前面介绍Windows下Android 开发环境配置,主要是面向JAVA开发环境,对只做APK上层应用开发人员来讲,基本够用了,由于Linux系统的权限限制和Android封装架构限制,很多涉及底层设备.接口.驱动控制的应用开发,不得不使用到本文的NDK开发环境(基于Android源码或内核源码修改),开发语言使用C/C++,NDK开发更接近于Linux开发,需要更多关于Linux应用编程知识.本文就介绍一

Windows环境下Android NDK环境搭建

前面介绍Windows下Android 开发环境配置,主要是面向JAVA开发环境,对只做APK上层应用开发人员来讲,基本够用了,由于Linux系统的权限限制和Android封装架构限制,很多涉及底层设备.接口.驱动控制的应用开发,不得不使用到本文的NDK开发环境(基于Android源码或内核源码修改),开发语言使用C/C++,NDK开发更接近于Linux开发,需要更多关于Linux应用编程知识.本文就介绍一下NDK环境搭建及基础编程思想. 本文演示环境:Windows 7 Ultimate+Cy

windows环境下通过c++使用redis

1.Windows下Redis的安装使用 Redis是一个key-value存储系统.Redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用.本文中,作者分享了在Windows下进行安装和使用Redis的技巧. Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sortedset --有序集合)

Android 开发之Windows环境下Android Studio安装和使用教程(图文详细步骤)

鉴于谷歌最新推出的Android Studio备受开发者的推崇,所以也跟着体验一下. 一.介绍Android Studio  Android Studio 是一个Android开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试. 最近,Google 已宣布,为了简化 Android 的开发力度,以重点建设 Android Studio 工具,到今年年底将停止支持Eclipse等其他集成开发环

[原]我在Windows环境下的首个Libevent测试实例

libevent对Windows环境也有很好的支持,不过初次学习和编译libevent简单实例,总是有一些陌生感的,只有成功编译并测试了一个实例,才会有恍然大悟的感觉.下面将要讲到的一个实例是我从网上抄过来的,原创文章地址为:http://www.felix021.com/blog/read.php?2068,表示感谢! 在给出我的第一个测试成功的例子代码之前,简要介绍一下libevent入门的基本知识.原文中作者有一段话是这样的: “基本的socket编程是阻塞/同步的,每个操作除非已经完成或

4.1. 如何在Windows环境下开发Python

4.1. 如何在Windows环境下开发Python 4.1. 如何在Windows环境下开发Python 4.1.1. Python的最原始的开发方式是什么样的 4.1.1.1. 找个文本编辑器,新建个.py文件,写上Python代码 4.1.1.2. 打开Windows的cmd,并且切换到对应的python脚本所在目录 4.1.1.2.1. 方法1:手动打开cmd,并cd到对应路径 4.1.1.2.2. 方法2:通过Notepad++的Open current dir cmd 4.1.1.3