2014-08-27 51 views
1

目标:

我正在寻找一种方法来实现使用xcode作为我的IDE的协议缓冲区(由谷歌)到iPhone应用程序。 https://code.google.com/p/protobuf/如何编译iphone的cpp协议缓冲区的简约库?

背景:

只有C++,Java和Python的是由谷歌直接支持。

ObjC第三方项目的开发似乎在几年前停止。 https://code.google.com/p/protobuf-objc/

当协议缓冲区和iphone搜索我经常发现在C#中两个第三方项目两个引用:

一个由马克Gravell:https://code.google.com/p/protobuf-net/

和一个由乔纳森双向飞碟:https://code.google.com/p/protobuf-csharp-port/

(我不知道是否或如何,他们都在Xcode使用,并张贴在这个问题:https://stackoverflow.com/questions/25524852/can-i-use-protobuf-net-or-protobuf-csharp-port-with-xcode

情况:

Bennett Smith对iphone开发的另一个有趣的方法是“简单地”使用Google C++源代码https://gist.github.com/BennettSmith/7150245)。 (btw真棒!)脚本工作得非常好,并产生了两个库:一个普通的和一个精简的。

让我好奇的是这些库(.a文件)的大小。包括所有版本(x86_64_mac,i386_ios_sim,armv7,armv7s,arm64),常规库的大小接近89 MB,并且生命库的大小仍然大于8 MB。

问题:

1.)为什么这些文件很大?据我所知,用于android实现protobuf的lite库接近100 KB,Marc Gravell提供的iPhone库(见上文)也接近100 KB。

我试图通过不包括x86_64_mac和i386_ios_sim(将脚本中提供的控件设置为0)来减小大小,但脚本以不留下任何文件的错误结束。 (当只消除i386_ios_sim它似乎工作,但减少大小只有6-7 MB。) 2)有谁知道如何配置脚本,只包括iPhone的构建?

3.)我怎样才能进一步减小这种C++库的大小(或者至少是合理的)?有没有人建议如何将Google cpp文件剥离为“简约”构建和编译库?到目前为止,我只找到一个链接,建议删除编译器和unittest文件。 (http://rxwen.blogspot.de/2011/11/use-protobuf-on-iphone-app.html),但不幸的是我还没有看到有关其他文件的相关性的任何讨论。

4.)(奖金:)当使用这个C++库时,我将不得不使用包装器对象。虽然我在网上发现了关于此的一般性文章,但是有人知道我可以看一看protobufs的解决方案吗?

回答