您的位置:首页 > 编程语言 > C语言/C++

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

2015-06-29 17:51 435 查看
概要:本文不做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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: