iOS ProtocolBuffer 最新操作记录以及“'GPBProtocolBuffers_RuntimeSupport.h' file not found”等问题解决
2017-09-05 15:35
1716 查看
ProtocolBuffer最新操作记录
概述
Protocol Buffer(简称PB)是Google出品的一种轻量 & 高效的结构化数据存储格式(详细原理Google下即可)。使用总结
相比常用Json和XML,性能更好(数据更小、结构更合理、数据交换更快);最重要的是使用PB,对开发者设计数据结构的过程有很好的提示规范作用(个人体会��)。
Mac下环境搭建
提示:搭建环境前请FQ下(各位懂得!)。安装
HOMEBREW(已安装跳过),打开终端输入指令:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"[/code]
Protocol Buffer 安装包,链接:https://github.com/google/protobuf/releases;
主要介绍iOS端,故下载protobuf-objectivec-3.4.0.tar.gz(当前最新),将压缩包解压,放在合适的地方;
在终端输入,brew install autoconf automake libtool curl指令;
在终端,cd进解压包protobuf-objectivec-3.4.0文件;
输入./autogen.sh,运行脚本(此处需FQ,加载资源);
输入./configure,运行脚本;
输入make,编译;
输入make check,检查依赖包是否完整,终端会输出7个检查项,都显示pass即可;
输入make install,安装PB;
输入proto --version不报错,输出版本信息,即可。生成.h、.m文件
使用终端cd到存放.proto文件的文件夹(事先创建好);
输入touch Person.proto命令;
输入vim Person.proto,按i进入编辑状态,按照PB语法设计数据,示例:syntax = "proto3";//默认是proto2,二者区别,可查阅PB文档 message Person { string name = 1; string age = 2; }
按Esc,:wq回车,在输入protoc --plugin=/usr/local/bin/protoc-gen-objc Person.proto --objc_out="./",如果没有语法或其他异常,请前往文件夹查看生成的.h和.m文件。
在工程target->Build Phrases->Compile Sources->给Person.pbobjc.m设置-fno-objc-arc.导入工程(手动)
在上面protobuf-objectivec-3.4.0.tar.gz解压包里面拷贝objectivec文件夹下面的全部源码文件,粘贴到工程建中名为ProtocolBuffer的文件夹(事先创建);
点按Xcode左下角+Add a new file ,点击Add Files To 你的工程名字,在弹出的文件搜索界面,进入上一步存放PB源码的ProtocolBuffer文件夹,选中ProtocolBuffers_iOS.xcodeproj并添加至工程(另外一个ProtocolBuffers_OSX.xcodeproj,不用理会,尝试导入,xcode8.3会崩溃);
在工程target->Build Phrases->Compile Sources->Link Binary With Libraries添加libTestSingleSourceBuild.a静态库
在工程target->Build Settings->Rez Search Path设置$(PROJECT)/ProtocolBuffer
在工程target->Build Settings->Header Search Path设置$(PROJECT)/ProtocolBuffer问题
关于GPBProtocolBuffers_RuntimeSupport.h等文件找不到的问题?刚开始使用cocoapods导入PB到工程,发现每次它导入的版本为1.9.11版本,与下载最新版本PB相比确实少了很多文件,最后便改为手动导入。
关于GPBProtocolBuffers_RuntimeSupport.h等文件在工程中确实存在,但编译时任然提示找不到文件?老问题,参照上面“导入工程”最后两个步骤,保证路径设置正确。
关于拖进工程.h和.m文件不支持ARC问题?参照上面“生成.h和.m文件”最后一步。
相关文章推荐
- IOS引用三方framewrok的头文件出现'xxxxx/xxxx.h' file not found问题解决方法
- iOS 中支付宝 ’openssl/asn1.h' file not found问题 和 objc-class-ref in AlipaySDK问题解决方法
- IOS引用三方framewrok的头文件出现'xxxxx/xxxx.h' file not found问题解决方法
- 解决问题记录(4)-Oracle Not Support Parallel Transaction
- Linux启动时 Error 15: File not found 问题解决方法
- 【解决问题】Error (138079): Current license file does not support partial reconfiguration
- 解决java java.io.FileNotFoundException: http:\localhost:8080 (文件名、目录名或卷)问题
- [原]在Oracle SOASUITE 10g 调用ESB 报“java.io.FileNotFoundException: /u01/esb/product/10.1.3.1/j2ee/home/../Context.properties”问题的解决办法
- Xcode解决SenTestingKit/SenTestingKit.h file not found 问题
- 解决Android在对Sdcard进行文件的读写操作的时候报错FileNotFoundException
- 最近做了一个iOS小应用,记录下遇到的问题以及解决方法
- XXXX.axf: Warning: L6373W: libattrs.map file not found in System Library directory 问题解决
- 解决SenTestingKit/SenTestingKit.h file not found 问题
- 关于问题ld:library not found for -lXXX 和ld:warning:directory not found option 以及duplicate symbol的解决办法
- [原创]配置php+nginx 时遇到的”file not found","access denied"奇怪问题的解决过程
- ios libxml/tree.h file not found解决办法
- VM ware 启动时坏掉了的解决方法:Runtime error opening,big_linux.vbox' for reading: -102 (File not found.).
- 解决Curl development headers with SSL support NOT FOUND 问题
- 解决java.io.FileNotFoundException: D:\xxx\yyy (拒绝访问。)问题
- Linux启动时 Error 15: File not found 问题解决方法