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
  • 相关阅读:
    用两个栈实现队列
    *重建二叉树
    *链表中环的入口结点
    *复杂链表的复制
    替换空格
    python多线程文件拷贝
    进程、线程、协程
    文件处理工具sed、awk
    CentOs软件安装
    python logging模块
  • 原文地址:https://www.cnblogs.com/cnsec/p/11515806.html
Copyright © 2011-2022 走看看