【protobuf】 1.生成C++代码

概要:本文不做ProtoBuf的介绍,如果想了解更多,请移步至http://www.ibm.com/developerworks/cn/linux/l-cn-gpb/

本文以初学者的角度去讲解如何使用ProtoBuf,如果读者对操作步骤有疑问,欢迎留言。


1.下载protobuf相关

可以到GitHub去找找,源代码也可以下载来看看 Protobuf Releases。作为例子,就用这个


2.用vs打开项目

解压zip文件,进入vsprojects目录,用vs2013(其他版本没试过)打开protobuf.sln。


3.执行编译

在菜单栏“生成”,或者在解决方案管理器右键“生成解决方案”。在vsprojects文件夹下,找到Debug目录,进去能看到下面几个dll和exe文件就说明编译好了。



4.在debug目录下,新建文件person.proto

syntax = "proto2";
message Person
{ 
	required string name = 1; 
	required int32 age = 2; 
};


5.执行protoc.exe

protoc --cpp_out=d:\ person.proto

执行后,在D盘根目录下生成了两个文件person.pb.h和person.pb.cc



6.测试代码

新建C++测试项目,添加刚才生成的那两个文件person.pb.h和person.pb.cc,然后编写main函数

#include "person.pb.h"
#include <iostream>
#pragma comment(lib, "libprotobuf.lib")
#pragma comment(lib, "libprotobuf-lite.lib")

int main()
{
	Person person = Person();
	person.set_age(10);
	person.set_name("Hello World");
	std::cout << person.name();
}


7.配置include和reference

在项目-属性,添加C++包含目录以及链接器的附加库目录。

配置属性→C/C++→附加包含目录,添加D:\protobuf\protobuf-3.0.0-alpha-3\src

配置属性→链接器→附加库目录,添加D:\protobuf\protobuf-3.0.0-alpha-3\vsprojects\Debug

你的protobuf所在的目录可能跟我的不一样,以上目录需要做相应修改。


8.按F5跑起来吧!


异常情况:如果编译报错error C4996: 'std::_Copy_impl': Function call with parameters that may be unsafe

那么只好吞掉这个编译报错,在属性→C\C++→预处理器添加:_SCL_SECURE_NO_WARNINGS

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值