windows下配置protobuf2.6.1

步骤:

  1. 下载protobuf-2.6.1.zip和protoc-2.6.1-win32.zip,地址:https://github.com/google/protobuf/tags
  2. 到目录protobuf-2.6.1\vsprojects下打开protobuf.sln
  3. 将项目libprotobuf设置为启动项目
  4. 运行

错误:

<hash_map> is deprecated and will be REMOVED

项目属性->C++->预处理器->预处理器定义:_SILENCE_STDEXT_HASH_DEPRECATION_WARNING

简单介绍:
通常,编写一个protocol buffers应用需要经历如下三步:

  • 定义消息格式文件,最好以proto作为后缀名
  • 使用Google提供的protocol buffers编译器来生成代码文件,一般为.h和.cc文件,主要是对消息格式以特定的语言方式描述

proto文件例子:

message Person {
  required string name = 1;
  required int32 id = 2;
  optional string email = 3;

  enum PhoneType {
    MOBILE = 0;
    HOME = 1;
    WORK = 2;
  }

  message PhoneNumber {
    required string number = 1;
    optional PhoneType type = 2 [default = HOME];
  }

  repeated PhoneNumber phone = 4;

  required bytes  unsure = 5;      //Add byte array here    
}

message AddressBook {
  repeated Person = 1;
}

编译:protoc.exe -I=./ –cpp_out=./ people.proto
-I代表people.proto目录,–cpp_out代表输出目录,people.proto代表要编译的文件

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
文件列表 1. 官方包 :protobuf-2.6.1.tar 2. 可直接引用,支持跨平台: protobuf-2.6.1 3. 编译库的脚本 :build-protobuf-2.6.1.sh 4. 使用脚本编译得到的可执行文件和库 :lib_protobuf-2.6.1 附:Android.mk LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) $(call import-add-path,$(LOCAL_PATH)/../../cocos2d) $(call import-add-path,$(LOCAL_PATH)/../../cocos2d/external) $(call import-add-path,$(LOCAL_PATH)/../../cocos2d/cocos) $(call import-add-path,$(LOCAL_PATH)/../../cocos2d/cocos/audio/include) LOCAL_MODULE := MyGame_shared LOCAL_MODULE_FILENAME := libMyGame FILE_LIST := hellocpp/main.cpp FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/*.cpp) FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/utils/*.cpp) FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/utils/*.c) FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/utils/*.cc) FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/ohters/protobuf-2.6.1/google/protobuf/*.cc) FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/ohters/protobuf-2.6.1/google/protobuf/io/*.cc) FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/ohters/protobuf-2.6.1/google/protobuf/stubs/*.cc) FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/ohters/protobuf-2.6.1/google/protobuf/testing/*.cc) FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/ohters/libqrencode/*.c) FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/ohters/jsoncpp/src/lib_json/*.cpp) FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/GF_Net/*.cpp) FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/GF_Net/*.cc) FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/GF_Net/protoc/*.cpp) FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/GF_Net/protoc/*.cc) FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/GF_WindowUI/*.cpp) FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/GF_Platform/*.cpp) FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/GF_Game/*.cpp) FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/GF_Game/GF_GameData/*.cpp) FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/GF_Game/GF_GameHall/*
Protobuf2.6.1是一个开源的序列化框架,它用于在不同的程序之间进行数据的传输和存储。它的全称是Protocol Buffers,是由Google开发的一种轻量级的数据交换格式。在C/C++中,protobuf提供了丰富的API,使得开发者可以方便地使用它来处理数据序列化和反序列化的操作。 首先,使用Protobuf2.6.1需要先定义一个消息的结构,这个结构使用.proto文件进行描述。在.proto文件中,开发者可以定义消息的字段类型、字段名称以及其他的属性。一旦消息结构定义完成,开发者可以使用protobuf提供的编译器将.proto文件编译成对应的C/C++源文件和头文件。 接下来,在C/C++代码中,开发者可以使用protobuf的API来对消息进行序列化和反序列化的操作。通过调用相应的函数,开发者可以将消息对象转换成二进制数据进行传输或者存储。当需要解析接收到的二进制数据时,开发者可以使用相应的函数将二进制数据转换成消息对象,并对其进行操作和访问。 Protobuf2.6.1的使用具有很多优势。首先,它的数据格式是二进制的,相较于文本格式具有更高的效率和更小的存储空间。其次,由于protobuf生成的代码是自动生成的,所以减少了人为的错误可能性,并提高了开发效率。另外,protobuf支持向后兼容性和扩展性,可以方便地进行版本升级和数据结构的变更。 总之,protobuf2.6.1是一个强大且易用的序列化框架,可以方便地在C/C++程序中进行数据的传输和存储。它提供了丰富的API和功能,能够满足开发者的需求,并提高开发效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值