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
Windows环境下google protobuf入门的更多相关文章
- 在Windows环境下构建Lua 入门
在Windows环境下构建Lua 一:准备软件 1.C-compiler(TDM GCC) http://tdm-gcc.tdragon.net/download 2.Lua源代码 http:// ...
- windows环境下protobuf的java操作{编译,序列化,反序列化}
google protocol buffer的使用和原理 概况: Protocol Buffers(也就是protobuf)是谷歌的语言中立的.平台中立的.可扩展的用于序列化结构化的数据: windo ...
- JavaWeb入门——在Windows环境下安装Tomcat服务器
JavaWeb入门——在Windows环境下安装Tomcat服务器 摘要:本文主要学习如何在Windows环境中下载并安装Tomcat服务器. 下载 获取安装包 推荐去官网上下载Tomcat: htt ...
- 【经验之谈】Git使用之Windows环境下配置
前言 安装 配置 关于git使用的几个问题 后记 关于代码托管,以前用过vss和svn,看博客或论坛的时候,经常有人提到github,有很多著名的开源软件都托管在github,想来肯定不错(莫笑),当 ...
- Windows环境下32位汇编语言程序设计(典藏版)
Windows环境下32位汇编语言程序设计(典藏版)(含CD光盘1张)(年,经典再现!) 罗云彬 著 ISBN 978-7-121-20759-4 2013年7月出版 定价:99.00元 756页 1 ...
- Android 开发之Windows环境下Android Studio安装和使用教程(图文详细步骤)
鉴于谷歌最新推出的Android Studio备受开发者的推崇,所以也跟着体验一下. 一.介绍Android Studio Android Studio 是一个Android开发环境,基于Intel ...
- [原]我在Windows环境下的首个Libevent测试实例
libevent对Windows环境也有很好的支持,不过初次学习和编译libevent简单实例,总是有一些陌生感的,只有成功编译并测试了一个实例,才会有恍然大悟的感觉.下面将要讲到的一个实例是我从网上 ...
- 【转】Windows环境下Android NDK环境搭建
原文网址:http://www.metsky.com/archives/525.html 前面介绍Windows下Android 开发环境配置,主要是面向JAVA开发环境,对只做APK上层应用开发人员 ...
- Windows环境下Android NDK环境搭建
前面介绍Windows下Android 开发环境配置,主要是面向JAVA开发环境,对只做APK上层应用开发人员来讲,基本够用了,由于Linux系统的权限限制和Android封装架构限制,很多涉及底层设 ...
随机推荐
- 每天200亿次查询 – MongoDB在奇虎360【转】
100多个应用,1,500多个实例,每天200亿次查询 奇虎是中国最大的安卓移动发布平台.奇虎也是中国最顶尖的病毒软件防护公司,同时为网络以及移动平台提供产品.自从2011年成为MongoDB的用户之 ...
- 【转】js获取url传递参数
<Script language="javascript">var Request = new Object();Request = GetRequest();var ...
- 1、MySql的安装和连接测试并给root用户赋密码
一.mysql数据库的安装 Windows下MySQL的配置 以 MySQL 5.1 免安装版为例, 下载 mysql-noinstall-5.1.69-win32.zip ( 官方下载页: http ...
- Caffe+Ubuntu14.04+CUDA7.5 环境搭建(新人向)指南
序 本文针对想学习使用caffe框架的纯新手,如果文中有错误欢迎大家指出. 由于我在搭建这个环境的时候参考了许多网上的教程,但是没有截图,所以文中图片大多来源于网络. 本文没有安装matlab的步骤, ...
- LeetCode OJ 169. Majority Element
Given an array of size n, find the majority element. The majority element is the element that appear ...
- GDI+ 图片转存
摘自MSDN,其中 GetEncoderClsid 第一个参数可为 L"image/bmp" L"image/jpeg" L"image/gif&qu ...
- NOIP2011-普及组复赛-第二题-统计单词数
题目描述 Description 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数. 现在,请你编程实现这一功能,具体要求是:给 ...
- Python 学习笔记5
Life is like a box of chocolate. 今天继续学习Python数据结构. http://www.pythondoc.com/pythontutorial3/datastru ...
- ecshop php5.4以上版本错误之preg_replace 替换成 preg_replace_callback
类似这样的报错: Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instea ...
- subnetting and the subnet mask
原文:https://www.techopedia.com/6/28587/internet/8-steps-to-understanding-ip-subnetting/5 Step 4 - Sub ...