Компиляция protobuf с xCode 5

Я хочу использовать protobuf (https://code.google.com/p/protobuf/) в своем проекте

Вы успешно скомпилировали protobuf с xCode 5, пожалуйста, помогите поделиться своим опытом?

Спасибо.

Ответ 1

Если вы не возражаете строить Google Protobuf самостоятельно, то хорошей альтернативой использованию Cocoapods является запуск bash script здесь.

https://gist.github.com/BennettSmith/7150245

Этот script создаст правильную сборку Google Protobuf, которая поддерживает архитектуры i386, armv7, armv7s, arm64 и x86_64. Он будет создавать статическую библиотеку, которая является универсальной. Он также будет создавать компилятор protoc для использования в OS X.

Ответ 2

Вы можете добавить поддержку буферов протокола Google в проект Xcode 5 с использованием Cocoapods, добавив следующую строку в ваш подфайл.

pod 'GoogleProtobuf', '~> 2.5.0'

Это поместит версию протобуфа С++ в Pod для вашего проекта. Он также добавит компилятор protoc в папку Pods/GoogleProtobuf/bin/protoc в вашем проекте.

В проекте можно создать правило пользовательской сборки, которое автоматически преобразует файлы .proto в файлы .ph.{h,cc}. Вот как я это сделал:

Установите правило сборки для "Обработать исходные файлы с именами, соответствующими: *.proto Использование Custom Script". script должен включать следующее:

cd ${INPUT_FILE_DIR}
${SRCROOT}/Pods/GoogleProtobuf/bin/protoc --proto_path=${INPUT_FILE_DIR} ${INPUT_FILE_PATH} --cpp_out=${INPUT_FILE_DIR}/cpp

Задайте выходные файлы следующим образом:

$(INPUT_FILE_DIR)/cpp/$(INPUT_FILE_BASE).pb.h
$(INPUT_FILE_DIR)/cpp/$(INPUT_FILE_BASE).pb.cc

Любые .proto файлы, которые вы включаете в свой проект, теперь будут автоматически преобразованы в С++ и затем скомпилированы как часть вашей сборки.