如何使用ruby协议缓冲区gem来编译proto文件?

时间:2013-08-03 11:57:43

标签: ruby protocol-buffers

有人设法成功使用'ruby protocol buffers' gem吗? 我在编译基本原型文件时遇到问题:

package Test;

message MyMessage
{
  optional string myField = 1;
}

当我致电ruby-protoc test.proto时,我收到以下错误消息:

Person.proto:5:3: Expected "required", "optional", or "repeated".
Person.proto:6:3: Expected "required", "optional", or "repeated".
/var/lib/gems/1.9.1/gems/ruby-protocol-buffers-1.4.1/lib/protocol_buffers/compiler.rb:15:in `compile': 1 (ProtocolBuffers::CompileError)
    from /var/lib/gems/1.9.1/gems/ruby-protocol-buffers-1.4.1/bin/ruby-protoc:38:in `<top (required)>'
    from /usr/local/bin/ruby-protoc:23:in `load'
    from /usr/local/bin/ruby-protoc:23:in `<main>'

非常感谢,

托梅克

1 个答案:

答案 0 :(得分:0)

我有类似的问题,但在我的情况下问题是我为protobuf安装了rubygem,但我没有安装rubygem所依赖的Google的protobuf。 在终端验证:

$ protoc --version

如果“找不到protoc:command”,那么解决方案(在OSX上使用自制程序)是:

$ brew install protoc
$ protoc --version
libprotoc 2.6.1

然后使用没有投诉的测试信息编译工作 -

$ ruby-protoc test.proto
$