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语 ...
随机推荐
- GitHub linux 提交文件及403错误处理
$git clone "Clone with HTTPS(自己生成的地址,如:https://github.com/******(用户名)/test.git)" 这时在你git ...
- 【Python游戏编程03--pygame事件与设备轮询】
一.pygame事件 1.pygame事件可以处理游戏中的各种事情,完整的事件列表如下: QUIT,ACTIVEEVENT,KEYDOWN,KEYDOWN,MOUSEMOTION,MOUSEBUTTO ...
- Android中的task和stack
今天在重新理了一遍intent的过程中发现task是一个神奇的东西,而它又和stack有着很深的联系.task顾名思义是一个任务,但是这个任务可不一定只是来自一个app,比如我用微信来发一张图片,那么 ...
- RPM Yum 相关命令及参数
RPM 命令 我们可以直接使用rpm命令,对软件包进行一些操作. 安装 rpm –ivh <package_name> rpm –Uvh <package_name> # 没有 ...
- windows同时安装了两种jdk
因为某种需要,同时安装jdk1.8 和jdk1.7 因为电脑曾经安装了jdk1.8,并且已经设置好环境变量.后来新添加的jdk1.7 出现问题: 先是安装的1.8,之后有安装了1.7,在环境变量中也配 ...
- CentOS7.5下安装Python3.7 --python3
1.将本地安装包上传到远程主机上 scp Python-3.7.0.tgz root@123.206.74.24:/root 2.扩展 安装Python之前安装Python相关的依赖包(主要是u红色部 ...
- input 标签的 disabled 和 readonly 属性
首先这两种属性都会使显示出来的文本框不能输入. disabled 属性:规定禁用 input 元素.被禁用的 input 元素既不可用,也不可点击和编辑,使用 tab 键时将会被跳过,用户的所有操作对 ...
- 云服务器上mysql的配置
mysql的配置 要想云服务器的mysql数据库能被外部连接,还需要做一些配置 首先执行下面三条命令: sudo apt-get install mysql-server sudo apt isnta ...
- CentOS7下swap分区创建(添加),删除以及相关配置
在添加swap分区之前我们可以了解下当前系统swap是否存在以及使用情况,可用: 1. free –h 或 swapon –s 了解硬盘使用情况(一般/dev/vda1为挂载硬盘): 1. df –h ...
- decltype typename
decltype((variable))总是引用类型,但是decltype(variable)只有当variable是引用类型时才是引用类型. #include <iostream> #i ...