2014-08-27 2 views
1

Цель:

Я ищу способ реализовать буферы протокола (google) в iphone-приложении, используя xcode в качестве моей IDE. https://code.google.com/p/protobuf/Как скомпилировать минималистичную библиотеку протоколов-протоколов cpp для iphone?

фона:

только C++, Java, Python поддерживает Google напрямую.

Разработка для стороннего проекта в 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)

Ситуация:

Еще один интересный подход для iphone dev от Bennett Smith - «просто» с использованием источника C++ Google https://gist.github.com/BennettSmith/7150245). Скрипт (btw awesome!) Работает очень хорошо и создает две библиотеки: обычную и удобную.

Что меня интересует размер этих библиотек (файлы .a). В том числе все сборки (x86_64_mac, i386_ios_sim, armv7, armv7s, arm64) размер обычной библиотеки близок к 89 МБ, а размер жизненной библиотеки по-прежнему превышает 8 МБ.

Вопросы:

1.) Почему файлы, большой? Насколько мне известно, библиотеки библиотек для андроидной реализации protobuf ближе к 100 КБ, а библиотека для iphone от Марка Гравелла (см. Выше) также ближе к 100 КБ.

Я попытался уменьшить размер, не включая x86_64_mac и i386_ios_sim (установка для элементов управления в сценарии равным 0), но сценарий заканчивается ошибкой, не оставляющей никаких файлов. (Когда удаляется только i386_ios_sim, он работает, но уменьшает размер до 6-7 МБ.) 2.) Кто-нибудь знает, как настроить скрипт для включения только iphone-builds?

3.) Как я мог как можно больше уменьшить размер такой библиотеки C++ (или, по крайней мере, разумно)? Есть ли предложения о том, как удалить файлы cpp google в «минималистичную» сборку и скомпилировать библиотеку? До сих пор я нашел только ссылку, которая предлагала отказаться от компилятора и файлов unittest. (http://rxwen.blogspot.de/2011/11/use-protobuf-on-iphone-app.html), но, к сожалению, я еще не видел дискуссий об актуальности других файлов.

4.) (Бонус :) При использовании этой библиотеки C++ мне придется использовать объект-оболочку. Хотя я нашел общие статьи об этом в сети, кто-нибудь знает о решении для протобуфов, на которые я мог бы взглянуть?

ответ

Смежные вопросы