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
  • 相关阅读:
    关于二叉树遍历的一点想法
    Mysqldump导入数据库很慢的解决办法
    javascript笔记收集
    再次讨论二叉树--如何根据先序和中序推选后序
    一道图的题目-拓扑序概念
    一道哈夫曼二叉树题目--稍微容易一点
    一道哈夫曼树的题目--好不容易
    证明二叉树节点数公式
    一道二叉树题目---顺序存储二叉树位置同层的关系
    POJ 3253 Fence Repair(贪心)
  • 原文地址:https://www.cnblogs.com/cnsec/p/11515806.html
Copyright © 2011-2022 走看看