ProtocolBuffer for Objective-C 运行环境配置及使用
1,我已经安装了brew、pod、protoc,如果您没安装,请按照下面方式安装。
安装很简单,对着README操作一遍即可,我贴出自己在终端的命令行。需要输入的命令行依次为:
1)打开终端,查看mac里面有没有装Homebrew,键入以下命令
brew -v
2)如果没有安装Homebrew就使用下面的命令安装
ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
3)安装protobuf编译器和所需的工具
brew install automake
brew install libtool
brew install protobuf
4)以上步骤进行完之后,开始Clone this repository,在桌面新建protobuf-objc 文件夹,在终端里进入该文件下下载代码
5)Build it !
./scripts/build.sh
运行完成后,最终会生成一个protoc-gen-objc插件,被安装到/usr/local/bin/目录下。如果没有错误的话,以后便可以用这个命令将.proto文件转换为不同语言的源代码文件。
2, OK ,以上是准备工作,下面开始集成
0)mkdir一个目录ProtoDir
1)在ProtoDir目录下创建一个iOS应用项目,ProtoProj
2)在ProtoDir目录下创建一个proto文件:
syntax = "proto2";
package csdnblog;
message PBUser {
required string userId = 1; // 用户ID
optional string nick = 2; // 用户昵称
optional string avatar = 3; // 用户头像
optional string password = 7;
optional string email = 8;
optional string mobile = 9; // 手机号码
optional string qqOpenId = 10; // QQ ID
optional string sinaId = 11; // SINA UserID
optional string weixinId = 12; // WeChat UserID
}

3)cd到ProtoProj项目目录下执行pod init命令,生成了Podfile,pod search protobuf出一个protobuf版本写进去.例如我的:
pod 'Protobuf', '~> 3.3.0'
最后pod install
4)cd .. 到ProtoDir,执行命令:
protoc status.proto --objc_out='./'
生成了俩文件.h .m
5)把生成的文件拖入项目中build,报错了:
ARC forbids Objective-C objects in struct
把这个文件的.m 改成.mm 使用c++编译即可。
然后build,success...
最后补充:
网上有些人会遇到一些问题汇总:
1,#import)头文件没有提示,虽然自己手写出来也能使用,但总觉得不方便。在stackoverflow上找到了解决办法:把pods目录添加到用户头文件检索的路径即可。具体实现方法如下:
选择target ——- BuildingSettings ——– User Header Search Paths,双击空白区域点击“+”号,输入“$(PODS_ROOT)”,选择recursive(会在相应的目录递归搜索文件)。
2,提示找不到GeneratedMessageProtocol。你只需要将其注释掉就行了。
ProtocolBuffer for Objective-C 运行环境配置及使用的更多相关文章
- ProtocolBuffer for Objective-C Mac运行环境配置
上班第4天,上司让我研究Google的Protocol Buffer,对于我这个小白来说这是一大难题.结合了一下网上资料,用了几个小时的时间,终于搞明白了.做个笔记,也当做资料给大家分享一下. 什么是 ...
- JAVA EE 运行环境配置(包含JAVA SE)
JAVA EE 运行环境配置(包含JAVA SE) 1.下载并安装jre-7u7-windows-i586.exe (最新的JAVA运行环境) 2.下载并安装java_ee_sdk-6u4-jdk7- ...
- maven(六),外置maven运行环境配置
外置maven eclipse内置的maven插件是固定版本,如果要用其他版本的maven,可以使用外置maven 下载地址: http://maven.apache.org/download.cgi ...
- win2008 r2 服务器php+mysql+sqlserver2008运行环境配置(从安装、优化、安全等)
这篇文章主要介绍了win2008 r2 服务器php+mysql+sqlserver2008运行环境配置(从安装.优化.安全等),需要的朋友可以参考下 win2008 r2 安装 http://www ...
- Sublime Text3 for Java 编译运行环境配置 入门详解 - 精简归纳
Sublime Text3 for Java 编译运行环境配置 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 9 / 24 转载请注明出处!️ 目录 Sublime Text3 for ...
- Java 学习(1): windows java 运行& 环境配置
Java 文件的运行 如下,创建了一个 名为"HelloWorld.java" 的 Java 文件: public class HelloWorld { public static ...
- wampserver - windows服务器下php运行环境配置
之前一直在通过windows server IIS跑php程序,直到后来,发现了她 “wampserver", 一个法国的windows+apache+php+mysql部署包. 感觉挺好用 ...
- 根据不同运行环境配置和组织node.js应用
安装node-config模块 npm install config --save || yarn add config mkidr config // 创建config文件夹 在config文件夹下 ...
- Ubuntu16.04 faster-rcnn+caffe+gpu运行环境配置以及解决各种bug
https://blog.csdn.net/flygeda/article/details/78638824 本文主要是对近期参考的网上各位大神的博客的总结,其中,从安装系统到跑通程序过程中遇到的各种 ...
- Java(JDK/Tomcat/Maven)运行环境配置及工具(idea/eclipse)安装
Java (计算机编程语言) Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征. Java语 ...
随机推荐
- java web 的 几种跨域方式
- Python pyYAML模块
pyYaml模块 一.pyYAML python也可以很容的处理ymal文档格式,只不过取药安装一个模块. 语法例子 注:主要用来做配置文件. 注:需要下载标准库.
- Sublime text 3 For LINUX 注册方法&关闭更新提示
在 /etc/hosts 文件加入以下 127.0.0.1 www.sublimetext.com 127.0.0.1 license.sublimehq.com 然后再Sublime输入以下注册码 ...
- Learning-Python【17】:包的导入使用
在同一级目录下新建 p1.py 和 run.py,添加代码 # p1.py 模块的设计者 def f1(): print("from f1") def f2(): print(&q ...
- ORM模型
一.创建及映射(orm_intro_demo文件) 在项目新建App下的models.py文件下新建ORM模型: from django.db import models #如果要将一个普通的类变成一 ...
- tcp协议以及socket介绍
壹:tcp协议:可靠传输 一: 3次握手,建立链接:4次挥手,断开链接 3次握手,建立链接:图解 ,这样双向通路就建立完成了. 在建立链接时,并没有数据传输,所以中间两部可以合在一起,也就是3次握手, ...
- JAVA静态&动态代理
具体场景 为了使代理类和被代理类对第三方有相同的函数,代理类和被代理类一般实现一个公共的interface,该interface定义如下 public interface Calculator { p ...
- P2292 [HNOI2004]L语言
传送门 思路: 毒瘤的字典树! ▲主要分有两个步骤: ① 日常的建树. ② 暴力地求解. ▲日常建树:过于基础,跳过. ▲重点在于如何暴力地求解而不被卡掉(DP?不存在的) 可以利用区间动规的思想, ...
- inline-block间隙问题总结, ,style一个样式后面 多加了一个 分号; 导致 样式失效
1--- 样式最后的{}后面, 不能有分号 ; 2---- display:inline-block 后, 元素间会有间隙 原因: 由换行或者回车导致的. 解决一: 只要把标签写成一行或者标签 ...
- 第 8 章 容器网络 - 071 - 如何定制 Calico 的 IP 池?
定制IP池 首先定义一个 IP Pool,比如: calicoctl create -f ipPool.yml 用此 IP Pool 创建 calico 网络. docker network crea ...