zoukankan      html  css  js  c++  java
  • protobuf在IOS中的使用

         google的官网目前只支持C++、java、pyhon,虽说网络上还有object-c的  但是安装时总有各种问题,所以直接下载官网的包最新版protobuf-2.5.0:http://code.google.com/p/protobuf/downloads/list

        2.   拷贝protobuf-2.5.0/src/google  整个目录至项目中 并再把protobuf-2.5.0/config.h文件拷到项目中
    3.   删除google目录中含有test字样的所有文件  参考:http://stackoverflow.com/questions/10277576/google-protocol-buffers-on-ios

    4.   Build Setting 中Header Search Paths  改变头文件引用的路径为本目录 递归
    5.     编译中遇到tr1的错误  删除含有tr1的字串  主要在config.h中
    6.    删除其中一些引用测试文件的include      #include

    7.  动态编译生成proto类文件  Builduild Rules中添加编译脚本:
      
         cd "$INPUT_FILE_DIR"   //转到当前被编译的文件目录
        /usr/local/bin/protoc  --cpp_out="$DERIVED_FILES_DIR"  "$INPUT_FILE_BASE.proto"  // protoc 为之前protobuf-2.5.0  解压安装生成的工具,注意改工具所在的路径,安装完一般在/usr/local/bin/protoc   
        $DERIVED_FILES_DIR 为xcode为每个项目编译时临时生成的一个数据文件目录,可以打印出来看下  只能编译输出到此目录,不能到当前项目根目录  不然编译会报错    

        cp "$DERIVED_FILES_DIR/$INPUT_FILE_BASE.pb.h" "$INPUT_FILE_DIR/$INPUT_FILE_BASE.pb.h"
        cp "$DERIVED_FILES_DIR/$INPUT_FILE_BASE.pb.cc" "$INPUT_FILE_DIR/$INPUT_FILE_BASE.pb.cc"
            //将生成的两个文件拷贝到项目根目录下

    注意这些个脚本的写法
         
    build setting中添加如下:
    Problem solved. I used "-lstdc++" flag to "Other Linker Flags" and "libz.dylib" library to "Link Binary With Libraries".

    百度云有demo
  • 相关阅读:
    线段树lazy标记??Hdu4902
    3D游戏引擎〇 開始
    实时分析之客户画像项目实践
    ubuntu14.04系统中virtualbox安装Oracle VM VirtualBox Extension Pack包
    《Android源代码设计模式解析与实战》读书笔记(二十二)
    最长递增子序列的数量
    springmvc学习笔记(19)-RESTful支持
    hadoop(三):hdfs 机架感知
    hadoop(二):hdfs HA原理及安装
    hadoop(一):深度剖析hdfs原理
  • 原文地址:https://www.cnblogs.com/cnsec/p/11515806.html
Copyright © 2011-2022 走看看