原文地址:http://blog.csdn.net/marujunyy/article/details/8875964
编译安装(生成的编译器protoc在/usr/local/bin目录下):
cd protobuf-2.4.1
./configure
make
make install
2、下载Objective-C compiler for ProtocolBuffer(目前有两种类型的实现)。
(1)、针对ProtocolBuffer2.2做修改,使最后生成的.proto文件编译器(protoc)支持Objective-C类型的文件输出。
http://code.google.com/p/metasyntactic/wiki/ProtocolBuffers
(2)、针对ProtocolBuffer2.3推出的plugin模式编写插件,以插件方式支持Objective-C类型的文件输出。
https://github.com/booyah/protobuf-objc
我选用第二种方式,这也是Google推荐的方式。
git clone https://github.com/booyah/protobuf-objc.git
进入该目录,并执行(生成的插件protoc-gen-objc在/usr/local/bin/目录下):
cd protobuf-objc
./autogen.sh
./configure
make
make install
写一个person.proto文件:
编译该文件:
protoc person.proto --objc_out=/Output/Directory/
protoc会使用该插件编译.proto文件,最终生成两个文件:Person.pb.h 、Person.pb.m(不支持ARC)
如果工程中使用了ARC ,所以需要使用-fno-objc-arc来标识相关的文件不使用ARC机制:
这个步骤通过后,说明ProtocoBuffer Compiler for Objective-C可以正常工作了。
这样ProtocolBuffer for Objective-C的工作环境就配置好了。
1)、将步骤3中编译输出的Person.pb.h 和Person.pb.m添加到项目中
2)、将Person.pb.h 中的 #import <ProtocolBuffers/ProtocolBuffers.h> 改为#import"ProtocolBuffers/ProtocolBuffers.h"
3)、在需要使用的地方引入头文件:#import "Person.pb.h"
在执行 ./autogen.sh时出现错误: ./autogen.sh: line 10: autoreconf: command not found
解决办法:需要安装automake和autoconf:
brew install automake
brew install autoconf
brew command not found:
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
Script used to build Google Protobuf 2.5.0 for use with Xcode 5 / iOS 7. Builds all supported architectures and produces a universal binary static library.