protobuf在windows环境下的使用

  在学习网络编程时,师兄给我提了个要求,让我用protobuf把字符串和图片打包发送,初次接触protobuf走了很多弯路,现在终于能够简单的使用,记录一下过程,希望能给遇到同样问题的同学一点帮助。
  关于protobuf我就不多介绍了(我了解的也是皮毛,还在继续学习,哈哈哈哈哈~),使用环境:win10+VS2013,protobuf版本:2.6.1,文件已经上传到百度云,
链接:https://pan.baidu.com/s/1tAy2EN1kIkZFd4rlPFWqQQ
提取码:kwmc

  下载解压后可以看到如下文件目录:

在这里插入图片描述  打开vsprojects文件夹,可以看到protobuf.sin,用VS打开。
在这里插入图片描述  在VS打开后有如下目录,这里我们只需要生成libprotobuf,libprotoc即可。
在这里插入图片描述
  在做完这些之后,在Debug目录下就有了我们想要的protoc.exe,以及一些 .lib文件。现在我们就可以来尝试使用protobuf了,下面是使用步骤:

1.定义自己的proto
  打开…\protobuf-2.6.1\examples,可以看到一些已有的例子,在此路径下创建 protobuf-test.proto,内容如下:

package tutorial;
 
message Test {
  required string testName = 1;
  required int32 testAge = 2;
  optional string testEmail = 3;
 
}

2.然后用cmd运行protoc.exe生成我们的目标语言格式 C++
 命令如下:protoc -I=E:\protobuf-2.6.1\examples --cpp_out=E:\protobuf-2.6.1\examples E:\protobuf-2.6.1\examples\protobuf-test.proto
在这里插入图片描述  在…\examples 路径下就生成了如下文件:
在这里插入图片描述3.使用
  用vs2013(其他版本也行)创建一个空项目,选择工程属性并配置:
在这里插入图片描述

  点击 配置属性 下的 C/C++ 的 常规,右边附加包含目录,导入这个路径E:\protobuf-2.6.1\src(根据自己文件存放路径来决定)
在这里插入图片描述  点击链接器 的常规,右边的附加库目录,导入这个路径E:\protobuf-2.6.1\vsprojects\Debug
在这里插入图片描述

  把之前生成的protobuf-test.pb.h和protobuf-test.pb.cc,复制到项目中:
在这里插入图片描述
  写入如下代码:

#include <iostream>
#include "protobuf-test.pb.h"
#pragma comment(lib, "libprotobuf.lib")
#pragma comment(lib, "libprotoc.lib")
using namespace std;
using namespace tutorial;

int main()
{
	Test mas1;

	mas1.set_testname("CSDN");
	mas1.set_testage(10);

	cout << mas1.testname() << endl;
	cout << mas1.testage() << endl;


	system("pause");
	return 0;
}

  运行,报如下错误:
在这里插入图片描述  解决方法如下:
右键点击工程 -> 属性 -> C/C++ -> 常规 -> SDL检查
改为:否 (/sdl-)
  或者:
右键点击工程 -> 属性 -> C/C++ ->预处理器
添加宏定义 _SCL_SECURE_NO_WARNINGS

  编译成功,结果如下:
在这里插入图片描述

  protobuf的更多使用等我用熟后再更新~

posted @ 2019-08-28 17:07  pokeCode  阅读(2456)  评论(0编辑  收藏  举报