关于goprotobuf的问题

yangfeng 发布于 2013/05/25 13:21
阅读 308
收藏 0

@chai2010 你好,想跟你请教个问题:

最近在使用go语言,想测试下对protobuf的支持,使用了http://code.google.com/p/goprotobuf/的源码,编译是成功的,但之后运行时却出现了没有反应的情况,即使用:protoc-gen-go --go_out=. demo.proto后,无论在win下或是在linux下,均没有返回任何信息,一直处于等待输入的情况。查看源码,发现:

g := generator.New()
data, err := ioutil.ReadAll(os.Stdin)
if err != nil {
    g.Error(err, "reading input")
}
专门测试了这种写法,这是在读取标准输入流,只有收到IO.EOF才会终止,这种写法根本无法使用原文中所描述的使用方法 

To compile the protocol buffer definition, run protoc with the --go_out
parameter set to the directory you want to output the Go code to.


protoc --go_out=. *.proto


在google搜索这个问题时发现了你的项目https://bitbucket.org/chai2010/gopath,发现你所编译的protoc.exe是对的,想弄清楚官方的源代码为什么是这样的情况,还是我的编译方法有问题?


加载中
0
chai2010
chai2010

你的使用方式不对.

protoc-gen-go.exe是protoc.exe的插件, 不是独立运行的程序.

需要将protoc-gen-go.exe和protoc.exe都放到$PATH中, 然后运行: protoc.exe --go_out=. xx.proto

返回顶部
顶部