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



有人成功使用"ruby协议缓冲区"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>'

非常感谢,

Tomek

我也遇到过类似的问题,但在我的情况下,问题是我已经为protobuf安装了rubygem,但我没有安装rubygem所依赖的谷歌的protobuf。在终端中验证:

$ protoc --version

如果"protoc:command not found",则解决方案(在OSX上使用自制软件)为:

$ brew install protoc
$ protoc --version
libprotoc 2.6.1

然后使用您的测试消息编译作品w/o投诉-

$ ruby-protoc test.proto
$

最新更新