О протоколе буферов на iPhone - PullRequest
3 голосов
/ 13 апреля 2011

Привет, я китайский инженер по iOS.

, и я пытаюсь запустить буферы протокола на iphone, и я загружаю метасинтаксический проект из кода Google и следую вашему вступлению.

Но когда я набираю команду protoc в моем терминале, я получаю сообщение об ошибке, например:

Моя команда:> protoc --proto_path = proto / src --objc_out = proto / build proto/src/common.proto

и сообщение об ошибке: protoc-gen-objc: программа не найдена или не является исполняемой --objc_out: protoc-gen-objc: сбой плагина с кодом состояния 1.

, а затем я получил проект из кода Google и скомпилировал protoc-gen-objc, и я запустил protoc следующим образом: protoc protoc-gen-objc --proto_path = geo3 --proto_path = src --objc_out = build/ gen src / geo3.proto

и, наконец, я получил это сообщение об ошибке:

protoc-gen-objc: файл не находится ни в каком пути, указанном с помощью --proto_path (или -I),Вы должны указать --proto_path, который охватывает этот файл.Обратите внимание, что proto_path должен быть точным префиксом имен файлов .proto - protoc слишком глуп, чтобы понять, когда два пути (например, абсолютный и относительный) эквивалентны (это сложнее, чем вы думаете).

, поэтомукак это исправить и получить файл .pb.m

Большое спасибо.

Ответы [ 2 ]

2 голосов
/ 08 ноября 2011

Кажется, для этой темы давно пора, у меня возникла та же проблема, когда вы используете пакет отсюда https://github.com/booyah/protobuf-objc.

после установки официального пакета protobuf от google и подготовки пакета booyah, вы должны вручную экспортироватьпуть для protoc-gen-objc, для меня он находится в / your install path / src / compiler /, затем вызовите команду protoc для генерации .h и .m для вас.

, если этотот же случай, что и у вас, это работает.надеюсь, это поможет вам и другим.

1 голос
/ 16 мая 2011

Я столкнулся с той же проблемой.Причина, по которой я получил сообщение, была в том, что я использовал исполняемый файл C ++ protoc.Вы должны были сделать protobuf с официального сайта Google.Перейдите в каталог вашего порта target-c, в котором находится проток, и сделайте следующее:

./protoc --proto_path=proto/src --objc_out=proto/build proto/src/common.proto

Это позволит вам убедиться в том, что в вашем текущем каталоге вы используете protoc с целью-.

...