protobuf在windows环境下的使用

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

  下载解压后能够看到以下文件目录:编程

在这里插入图片描述  打开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(其余版本也行)建立一个空项目,选择工程属性并配置:
在这里插入图片描述ui

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

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

#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_WARNINGScode

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

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

相关文章
相关标签/搜索