二是用objc版的。可以参考如下 *** 作:
1,下载ProtocolBuffer包,并按照包中根目录下README.txt安装。
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添加到项目中,就可以直接使用了。
在网上查了一下,虽然有很多文章介绍Protocol Buffer,但是实际使用起来,还是会遇到很多问题,所以我想应该有一个指南一样的东西,让新手很快就能使用它。Protocol Buffer简写为Protobuf,是Google开发的一种储存数据的方式,功能与XML一样,但更方便,数据量更小,速度更快,在序列化和反序列化的时候使用,有很大的优势。比如,网络游戏的通讯协议编写。更重要的是,它是一个开源项目。
由于Protobuf不能生成C#代码,所以就要用到另外一个开源项目protobuf-net,
用法是,在命令行用protoc.exe依据你自己定义的.proto文件,来生成.cpp文件
用protobuf-net的protogen.exe来生成.cs文件,可以写一个批处理,如下:
protoc -I=. --cpp_out=. Net.proto //在当前目录下,以cpp方式编译Net.proto
protogen -i:Net.proto -o:Net.cs//在当前目录下,用Net.proto生成Net.cs
其实两句功能是一样,只是分别生成了Net.proto的cpp文件和cs文件,这样就可以在两种语言编写的应用程序间通信了。
protobuf版本需要在protobuf程序中查看。
在protobuf程序中查看版本步骤如下所示:
1、点击打开计算机,进入分区列表。
2、在计算机分区列表中选择protobuf程序所在的文件夹。
3、点击打开protobuf程序。
4、如图所示在protobuf程序中,即可完成protobuf版本查看。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)