【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
5.执行protoc.exe
执行后,在D盘根目录下生成了两个文件person.pb.h和person.pb.cc
6.测试代码
新建C++测试项目,添加刚才生成的那两个文件person.pb.h和person.pb.cc,然后编写main函数
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
本文以初学者的角度去讲解如何使用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
相关文章推荐
- C++ enum and namespace
- C++中vector使用
- c/c++中内存区域划分大总结
- C++ MFC 计时器(OnTimer)的用法实例
- LeetCode_Construct Binary Tree from Preorder and Inorder Traversal
- c++opencv项目移植到Android(Mat—》IplImage*)
- C语言的作用域规则
- 集合的模拟实现(函数模板)
- 一些C++11语言新特性 - Range-Based for Loops
- C/C++求职宝典21个重点笔记(常考笔试面试点)
- 黑马程序员-OC语言-对象和方法之间的关系(听课笔记)
- 一些C++11语言新特性 - Uniform Initialization
- OC语言学习1
- C语言指针访问数组元素
- C++设计模式之工厂方法模式
- C++ GUI Qt4学习笔记(一)
- c++类的改进
- 黑马程序员——C语言之函数与手动编译执行C程序
- 双向循环链表(c++实现)
- C语言指针