windows下使用vs进行Proctocol Buffer开发(C++篇)

因工作原因接触Proctocol Buffer(protobuf),至于什么是protobuf,为何使用protobuf,我就不赘述了,百度下都是答案。

今天我介绍的是在windows下使用vs进行protobuf开发的环境配置过程及简单示例。

首先给出官方的网址镇楼,这种官方资料在这里都可以找到https://github.com/google/protobuf

接触新技术时,在开始免不了一头雾水,首先概括的给出windows下使用vs进行Proctocol Buffer开发(C++)的基本步骤

1.下载代码包

2.形成sln文件

3.编译出需要的lib文件和protoc.exe(exe程序可以直接下载得到)

4.编写.proto文件

5.利用protoc.exe文件生成.c和.h文件

6.在工程中添加相关资源(.c和.h文件以及lib库)  完成

还是比较清晰的,只是刚开始可能摸不到门路,不知从何下手。对了,补充一下我的运行环境 windowsx64 + vs2013

从官方下载你需要的protobuf源码包版本,如果你选择2.6.1,那么恭喜你,配置还是相当简单的,如果选择3.0.0,那么也恭喜你,你可以学习使用一下cmake

(其实说实话可能是我懒,不喜欢linux,喜欢使用宇宙最强IDE vs,让vs代替我做,跑题了。。。)

1.形成sln文件

2.6.1版本中,打开文件夹“vsprojects”,里面有个.sln文件,打开就可以了,对,就是这么简单。

3.0.0版本中,没有这个文件夹(可能是忘记了?还是我蠢没找到),不要慌,cmake文件夹下readme中明确的告诉了我们怎么生成这个sln文件。下面我就来翻译一下(其实是我加上我试验结果的)

需要下载Cmake工具(不会的就不要来搞protobuf了。。。哈哈)

打开vs2013 x64本机工具命令提示,在开始菜单里,vs下面的tools里面,我的路径C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\Shortcuts,实在找不到可以参考一下。

安装或者解压你下载的cmake

在我们亲爱的黑框框里(x64本机工具命令提示) 添加cmake环境变量(path\to 是官方文档里的实例路径)

C:\Path\to>set PATH=%PATH%;C:\Program Files (x86)\CMake\bin

cd命令进入你下载源码包的cmake文件夹下,在cmake文件夹中创建新目录build并进入。

C:\Path\to\protobuf\cmake>mkdir build & cd build
 C:\Path\to\protobuf\cmake\build>

创建一个release目录,如果成功,黑框框中不提示错误,并且你生成了一坨东西在对应的目录下。

C:\Path\to\protobuf\cmake\build>mkdir release & cd release
 C:\Path\to\protobuf\cmake\build\release>cmake -G "NMake Makefiles" ^
 -DCMAKE_BUILD_TYPE=Release ^
 -DCMAKE_INSTALL_PREFIX=../../../../install ^
 ../..

创建一个debug目录

C:\Path\to\protobuf\cmake\build>mkdir debug & cd debug
 C:\Path\to\protobuf\cmake\build\debug>cmake -G "NMake Makefiles" ^
 -DCMAKE_BUILD_TYPE=Debug ^
 -DCMAKE_INSTALL_PREFIX=../../../../install ^
 ../..

最关键的一步来啦,生成sln文件

C:\Path\to\protobuf\cmake\build>mkdir solution & cd solution
 C:\Path\to\protobuf\cmake\build\solution>cmake -G "Visual Studio 12 2013 Win64" ^
 -DCMAKE_INSTALL_PREFIX=../../../../install ^
 ../..

生成成功之后,就可以双击sln文件,在vs下进行编译了。

在生成过程中,悲催的我因为电脑环境的原因发生了找不到kernel32.lib的问题导致生成失败,搞了半天弄不好,最后通过打开vs安装程序,点击修复解决。

你看是不就生成啦!

之后用vs打开该工程,编译,你看是不生成里多了东西,其中就有protoc.exe和libprotobuf.lib和libprotoc.lib文件,这个就是我们需要的

利用protoc.exe运行意下命令生成.c和.h文件

protoc -I=$SRC_DIR --cpp_out=$DST_DIR $SRC_DIR/xxx.proto

前提是你要有一个xxx.proto文件,至于这个文件怎么写,请看链接

http://www.cnblogs.com/dkblog/archive/2012/03/27/2419010.html

2.创建C++控制台测试工程

好了,到这一步说明你手上有滚烫烫的.cc和.h文件,以及libprotobuf.lib和libprotoc.lib,已经迫不及待的要创建测试工程了,好吧,看你这么饥渴的份上,就满足你创建一个吧。哈哈哈哈(I是精神病,你们见谅)

创建一个控制台工程,c++的,添加.cc 和.h文件,include .h文件,编译,发现出错

error c1010,是否忘记添加#inlcude"stdfx.h"

生成的.cc文件中第一行就说请勿修改,但是我们就是要修改,加上stdafx.h头文件,对,就是这么任性,你有源码你怕啥!

然后添加上述两个.lib文件

点击“配置属性”下“c/c++”的“常规”,在右侧的“附加包含目录”,导入路径protobuf-xxx\src(从github上下载的源码包)。 编译,对,又出错,哪回让你一帆风顺?年轻人吃点苦不是啥坏事。。。。(此处省略10000000字,加痛打作者300回合)

错误是

error c4996 std::Copy_impl。。。。。。。

解决方法:点击“属性”中的“c\c++”下的“预处理器”,在右侧的“预处理器定义”中添加_SCL_SECURE_NO_WARNINGS。

再次点击编译,是不是成功啦?是不是?激动不?

你一定会以为我会给你一个示例工程,不,作者不是一个随便的人,我是不会这样做的,满网都是,我写他干嘛?

其实我还是会给你一个高级一点的实例工程的,下条博客见。。。。(你们知道这是哪个梗吗?)

版权是我所有滴,转载是要告诉我滴(其实你要是转载我是很高兴滴,不过记得说明出处啊)

提问题我是很欢迎滴,我是很喜欢被骚扰滴!

希望对您有帮助!

时间: 2024-11-06 11:37:25

windows下使用vs进行Proctocol Buffer开发(C++篇)的相关文章

在 Windows 下用 TDM-GCC(MinGW)开发 DLL 涉及到数据同步锁及 DLL 初始化终止化函数的问题

在 Windows 下用 TDM-GCC(MinGW)开发 DLL 如果要用到数据同步锁,理论上可以采用 Windows API 提供的临界区实现(需要用到的函数有 InitializeCriticalSection.DeleteCriticalSection.EnterCriticalSection.LeaveCriticalSection),也可以采用 GCC 的 pthread 库中的 pthread mutex lock 互斥锁来实现(需要用到的函数有 pthread_mutex_ini

Windows下基于eclipse的Spark应用开发环境搭建

原创文章,转载请注明: 转载自www.cnblogs.com/tovin/p/3822985.html 一.软件下载 maven下载安装 :http://10.100.209.243/share/soft/apache-maven-3.2.1-bin.zip       jdk下载安装:          http://10.100.209.243/share/soft/jdk-7u60-windows-i586.exe(32位)         http://10.100.209.243/sh

Windows下visual studio code搭建golang开发环境

Windows下visual studio code搭建golang开发环境 序幕 其实环境搭建没什么难的,但是遇到一些问题,主要是有些网站资源访问不了(如:golang.org),导致一些包无法安装,最终会导致环境搭建失败,跟据这个教程几步,我们将可以快速的构建golang的开发环境. 开发环境: 一.安装 这里我用需要安装一些工具: 1.Visual Studio Code 1.0.0 2.Golang下载 这里我使用的是Go1.6. 3.git下载 这一步跟建环境没什么关系, 但是之后要引

mysql数据库在Linux和windows下免安装实现以及框架开发碰到的问题

2017年7月23号下午5:20分,上周我根据自己的实际情况,总结了mysql数据库在windows系统下和linux系统下免安装版本的实现,以及在项目开发中遇到的数据库报错,今天整理出来,以供日后学习之用,同时,我给自己制定了一个计划,每周日会将自己本周碰到的一些问题记录下来,在周日整理出来发布在博客上面,2017年7月23号是我的第一周,我要坚持10年,卢小朋说到做到,加油! 一.linux安装说明 说明 mysql-5.7.14-linux.zip部署包支持在CentOS 6.x/7.x

windows下sublime text的node.js开发环境搭建

首先安装sublime text3,百度一堆,自己找吧.理论上sublime text2应该也可以.我只能说一句:这个软件实在是太强悍了. 跨平台,丰富的插件体系,加上插件基本上就是一个强悍的ide了.目前我在使用的主要是Emmet.Python.还有一些格式化的插件(xml,json),加上这次安装的node.js. node.js的安装就不用多说了,直接http://nodejs.org/ 点击install下载window版本的安装程序后安装即可.默认的安装会将安装目录加到path环境变量

windows下用ADT进行android NDK开发的详细教程(从环境搭建、配置到编译全过程)

郑重申明:如需转载本博客,请注明出处,谢谢! 这几天在学习android NDK的开发,那么首先让我们来看看android NDK开发的本质是什么. NDK(Native Development Kit),即本地开发工具,简单地说,就是在开发android应用程序的时候,在java类中调用native函数,而native函数的接口也是在java类中定义的,但是native函数最终由本地的C/C++代码实现.简单地说,就是在java中调用C/C++函数.至于为什么要用NDK,我总结了一下,大致有以

Windows下Python3+nose+appium自动化测试之Android实战篇

简介 以下用来做自动化测试的这款app叫最爱抓娃娃,以后会改名为网易抓娃娃. 下文提到的appiumier项目里会包含用来测试的apk包以及自动化测试代码. 先说一个坑 随着Android机高度定制的大潮,有些手机是这样的,比如Vivo x9s,你在做测试调试的过程中最终会发现跳转到某些页面后driver却进不去这个页面,page_souce也没法打印,所以什么元素你都获取不到.唯一的解决办法就是换个手机.后来我换了一个中兴手机,问题消失了. 准备工作 这里我列举下在Windows下用pytho

Windows下配置LAMP(WAMP)开发环境

关键词:搭建LAMP(WAMP) 我认为,开发LAMP可视化部分的最好开发环境是Windows,因为我们可以用Dreamweaver来写前台代码. 1.安装MySQL数据库. 我安装的是5.1版,我认为这一版比较经典.下载地址:MySQL5.1下载页面 注意安装路径是    ...../lamp/mysql5 2.安装Apache. 这没什么好说的,我们主要讲这么配置. 注意安装路径是    ...../lamp/Apache2 3.安装PHP. 把压缩包解压到    ...../lamp/ph

windows下VisualStudio和QtCreator搭建Qt开发环境

一.简介 集成开发平台IDE都有各自的长处,编写Qt程序可根据自己的喜好来选择相应的IDE.下述文章都是装载博友的文章,其中有很多细节还得自己调整. 二.详解 1.VisualStudio搭建Qt开发环境 Visual Studio中文官方网站 Visual Studio所有下载 (1)Visual Studio Community 2013 1.选择Community 2013,下载安装 2.安装完Visual Studio默认是英文,如果对英文不感冒的童鞋,可以下载中文语言包. 3.安装完成