google protobuf学习笔记一:windows下环境配置

欢迎转载,转载请注明原文地址:http://blog.csdn.net/majianfei1023/article/details/45371743

protobuf的使用和原理,请查看:http://blog.csdn.net/majianfei1023/article/details/45112415

Windows下google protobuf开发环境配置

最近项目需求,Client与Server的网络通讯协议传输使用google protobuf rpc。对Protobuf,之前是只知道有这个东西,知道它干吗,而且1直很敬慕,但是历来没学习过,最近恰好趁着项目机会,好好学习学习。

这篇主要讲,在windows下用vs2012配置google protobuf开发环境。

1.准备工作:

1.Windows7或其他Windows系统.


2.Visual Studio 2012或其他版本VS.


3.protobuf:我使用的是最新版本的protobuf(protobuf⑵.6.1)。

windows下,需要下载两个包:

protobuf⑵.6.1.tar.bz2 (protobuf所有的源码都在里面,用它进行编译成lib库)

protoc⑵.6.1-win32.zip(内涵protoc.exe用来把proto文件编译成目标语言(C++,Java,Python)的文本,是google
protobuf定义的格式。
其实这个文件不是必须的,编译protobuf⑵.6.1.tar.bz2的时候会生成这个exe)

去官网下载protobuf的source code和编译工具:https://developers.google.com/protocol-buffers/docs/downloads


然后解压:我本地的路径是D:protobuf⑵.6.1

2.配置环境:

1.进入 D:protobuf⑵.6.1vsprojects,用vs2012运行protobuf.sln,然后build solution。

这些大家都会,我就不罗嗦了。

然后你就会发现,D:protobuf⑵.6.1vsprojectsDebug目录下出现了很多内容,最重要的几个就是:libprotobuf.liblibprotobuf-lite.liblibprotoc.libprotoc.exe


2.D:protobuf⑵.6.1examples本来是有例子的,我们亲身实践下,动手自己在此目录下定义1个proto:

package tutorial;

message Person {
required string name = 1;
required int32 age = 2;
optional string email = 3;

}

然后使用cmd运行protoc.exe生成我们的目标语言格式(c++).

cd D:protobuf⑵.6.1vsprojectsDebug

D:protobuf⑵.6.1vsprojectsDebug>protoc -I=D:protobuf⑵.6.1examples –cpp_out=D:protobuf⑵.6.1examples D:protobuf⑵.6.1examplesperson.proto

然后可以看到,生成了person.pb.hperson.pb.cc的文件。

3.我们用vs2012新建1个空的项目,选择属性,配置1下:

点击
配置属性
下的 C/C++
常规
,右侧附加包括目录,导入这个路径D:protobuf⑵.6.1src

点击链接器常规,右侧的附加库目录,导入这个路径D:protobuf⑵.6.1vsprojectsDebug

3.开始1个最简单的项目

好了,1切配置好了,该写代码了,我们做1个最简单的输入输出。新建1个main.cpp,然后把之前生成的person.pb.h和person.pb.cc复制到项目里面,并添加到项目里面。

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

using namespace std;
using namespace tutorial;

int main()
{
Person person;

person.set_name("flamingo");
person.set_age(18);

cout<<person.name()<<endl;
cout<<person.age()<<endl;

system("pause");
return 0;
}

有些人说可以正常运行,但是我这边不行,主要是

网上查找缘由,终究发现,需要在代码里面加两行:

#pragma comment(lib, "libprotobuf.lib")
#pragma comment(lib, "libprotoc.lib")

就可以正常跑了:

protobuf的使用和原理,请查看:http://blog.csdn.net/majianfei1023/article/details/45112415

波比源码 – 精品源码模版分享 | www.bobi11.com
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

波比源码 » google protobuf学习笔记一:windows下环境配置

发表评论

Hi, 如果你对这款模板有疑问,可以跟我联系哦!

联系站长
赞助VIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡