iphone - 关于 iPhone 上的 ProtocolBuffers

标签 iphone protocol-buffers

嗨,我是一名中国 iOS 工程师。

我正在尝试在 iPhone 上运行 Protocol Buffer ,我下载了 metasyntactic project来自谷歌代码,并按照您的介绍进行操作。

但是当我在终端中输入 protoc 命令时,出现错误,例如:

我的命令:> protoc --proto_path=proto/src --objc_out=proto/build proto/src/common.proto

错误消息为:protoc-gen-objc:程序未找到或不可执行 --objc_out: protoc-gen-objc: 插件失败,状态代码 1。

然后从谷歌代码中得到一个项目并编译一个 protoc-gen-objc 并且我像这样运行 protoc: 协议(protocol) 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 文件

非常感谢。

最佳答案

这个帖子似乎已经很久了,我在使用这里的包时遇到了同样的问题 https://github.com/booyah/protobuf-objc .

从google安装官方protobuf包并准备好booyah的包后,您应该手动导出protoc-gen-objc的路径,对我来说它位于/您的安装路径/src/compiler/,然后调用protoc命令为您生成 .h 和 .m。

如果这和你的情况相同,那就可以了。希望它对您和其他人有所帮助。

关于iphone - 关于 iPhone 上的 ProtocolBuffers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5652348/

相关文章:

ios - UIView 中的 UITableView

iphone - 如何在用户图标单击时直接打开具有给定 url 的浏览器?

iphone - 将音频直接复制到iPhone上的音频缓冲区

java - 使用 Jackson 将 protobuf 转换为 JSON?

gradle - 如何基于另一个子项目的原始源目录设置原始源目录?

iPhone SDK 删除 NSLog 会导致 NSArray 未声明!

iphone - 是否有针对 Objective C 的预编译 OAuth 框架可供下载?

c# - 如何在c#中序列化64位枚举

c++ - 基于 Google Protocol Buffer 的套接字客户端

Android NDK 未定义对 google protobuf 的引用