1,下载ProtocolBuffer包,并按照包中根目录下README.txt安装。
http://code.google.com/intl/zh-CN/apis/protocolbuffers/
当前最新版本2.4.1
最后make install后,会生成编译器protoc,并拷贝到/usr/local/bin目录下。
2,下载Objective-C compiler for ProtocolBuffer。
目前有两种类型的实现。
一个针对ProtocolBuffer2.2做修改,使最后生成的.proto文件编译器(protoc)支持Objective-C类型的文件输出。
它在这里:http://code.google.com/p/metasyntactic/wiki/ProtocolBuffers
另一个针对ProtocolBuffer2.3推出的plugin模式编写插件,以插件方式支持Objective-C类型的文件输出。
它在这里:https://github.com/booyah/protobuf-objc
我选用第二种方式,这也是Google推荐的方式。
git clone https://github.com/booyah/protobuf-objc.git
默认会在当前运行目录下创建protobuf-objc目录。进入该目录,并执行:
./autogen.sh
./configure
make
make install
最终生成的插件名字为protoc-gen-objc,会被安装到/usr/local/bin/目录下。
3,测试.proto文件编译。
随便写一个test.proto文件,并编译该文件。命令是:
protoc –objc_out=/Output/Directory/ test.proto
protoc会自动在/usr/local/bin/目录下寻找名为”protoc-gen-objc”的插件,并使用该插件编译.proto文件,最终生成两个文件:
test.pb.h
test.pb.m
这个步骤通过后,说明ProtocoBuffer Compiler for Objective-C可以正常工作了。
4,在Xcode4.3.1中使用ProtocolBuffer
将步骤2中protobuf-obj/src/runtime/Classes目录导入到Xcode项目中,导入时,选中”Copy items into destination group‘s folder(if needed)“。
导入位置选择项目根目录。导入完毕后,项目根目录下将会出现Classes目录。将该目录改名为ProtocolBuffers(注意最后的s):
mv Classes ProtocolBuffers
修改项目属性中”Build Setting——>Header Search Pathes”,将项目根目录“.”添加到头文件搜索路径中去。
这样ProtocolBuffer for Objective-C的工作环境就配置好了。
5,使用
将步骤3中编译输出的test.pb.h和test.pb.m添加到项目中,就可以直接使用了。
分享到:
相关推荐
### Objective-C 2.0 运行时系统编程指南 #### 概述 Objective-C是一种面向对象的编程语言,它以其独特的动态性而闻名。这种动态性体现在它能够尽可能地将决策过程推迟到运行时执行,而不是在编译或链接阶段。因此...
1. **GNUstep System**:这是一个小型的Linux仿真环境,为Objective-C提供必要的运行环境。 2. **GNUstep Core**:包含了Objective-C开发的核心库和支持文件。 3. **GNUstep Devel**:提供了一些开发工具,例如...
运行时系统在Objective-C中扮演着类似操作系统的重要角色,为Objective-C程序提供运行环境和支持。 本文将深入探讨如何通过Objective-C运行时系统与`NSObject`类进行交互,包括如何在运行时动态地加载新类、转发...
### Objective-C 运行环境原理 #### 概述 Objective-C 是一种面向对象的编程语言,它结合了C语言的基础语法与Smalltalk的面向对象能力。Objective-C 的一大特色是其强大的运行时特性,这些特性使得它能够在程序...
Objective-C语言入门教程&深入浅出,理论实践相结合 Objective-C语言入门教程&深入浅出,理论实践相结合 Objective-C语言入门教程&深入浅出,理论实践相结合 Objective-C语言入门教程&深入浅出,理论实践相结合 ...
在Objective-C编程中,协议(Protocol)是一种强大的特性,它允许定义一套方法,可以被类遵循以实现特定的功能。协议扩展(Protocol Extension)是Swift语言引入的概念,它为Objective-C中的协议提供了类似的功能,...
Objective-C语言的许多决策可以在编译和运行时执行。只要有可能,它是动态的。这意味着Objective-C语言不仅需要一个编译器,还需要一个运行时系统来执行编译的代码。Runtime系统是一种用于Objective-C语言的操作系统...
17. 编译和构建环境:文中提到了多样的开发环境和构建系统,比如Linux/FreeBSD、GNUStep、XCode、Cygwin等,这些工具支持在不同的操作系统上构建和运行Objective-C程序。 18. Objective-C与C/C++的混合编程:...
Objective-C是在C语言基础上扩展的,引入了Smalltalk的面向对象特性,如消息传递机制,使得代码更加灵活和可扩展。 "第二讲 数据类型、运算符和表达式"深入讲解了基本的数据类型,包括整型、浮点型、字符型等,以及...
1. **Objective-C基础**:Objective-C是在C语言基础上扩展的,因此,理解C语言的基本语法是必要的。Objective-C添加了消息传递机制、类和协议等面向对象特性。 2. **消息传递**:Objective-C中的对象通过发送消息来...
《Objective-C高级编程:iOS与OS X多线程和内存管理》是一本深入探讨Apple平台开发中的关键技术的书籍。本书主要围绕Objective-C语言在iOS和OS X操作系统上的应用,特别是针对多线程和内存管理这两个核心主题进行...
C语言是计算机编程的基础,它是Objective-C的重要基石。在学习Objective-C之前,深入理解C语言的知识点至关重要。C语言以其高效、简洁和灵活性被广泛应用于系统编程、嵌入式开发、游戏引擎等领域。本资料主要涵盖了...
Objective-C语法的基石是C语言的语法结构,这意味着所有的C语言代码都可以在Objective-C中直接使用。但是,Objective-C在C的基础上新增了消息传递机制,这是它与C语言的一个重要区别。在Objective-C中,方法调用是...
Objective-C是基于C语言的,主要用于构建iOS和macOS应用程序,而Objective-C++则是Objective-C的一个扩展,它引入了C++的特性,使得开发者可以同时利用Objective-C的动态特性和C++的面向对象编程能力。 ### ...
Objective-C运行时系统(Run time)是Objective-C语言的关键组成部分,它允许许多决策在编译时和链接时推迟到运行时进行。这意味着Objective-C不仅仅是依赖编译器,还需要一个运行时系统来执行编译后的代码。运行时...
Objective-C 2.0运行时系统编程指南介绍的主要是Objective-C运行时系统的概念、编程接口和如何与之交互。Objective-C是一种面向对象编程语言,其运行时系统(Runtime System)是整个语言体系中非常核心的部分,它...
6. **Xcode与Interface Builder**:介绍Apple的集成开发环境Xcode,包括如何使用Interface Builder设计界面,以及如何配置项目和运行模拟器进行调试。 7. **源代码实践**:随书附带的源代码提供了实际的示例,让...
希望这个简单的Objective-C语言教程能够为你提供一个入门的起点。Objective-C是一种面向对象的编程语言,广泛应用于Mac OS和iOS开发。通过学习Objective-C的基本语法、类和对象、控制流程和方法等内容,你将能够编写...
1. **Objective-C基础**:Objective-C是在C语言基础上扩展的,因此它包含了C的所有特性。书中会讲解基本的数据类型、控制结构、函数和指针等基础知识,同时介绍Objective-C特有的动态类型和消息传递机制。 2. **...
在Windows系统上配置Objective-C的编译运行环境可能比在Mac上更为复杂,因为Objective-C主要是为Apple的iOS和macOS平台设计的。不过,通过一些工具和步骤,你可以在Windows上搭建一个基本的环境来学习和实验...