参考资料 protoc-gen-go: plugin output is unparseable | protoc 被 Windows 的命令行坑惨了! 多谢大神的帮助!
正文
代码
学习go的protobuf时,运行protoc --go_out=. *.proto 怎么都没有反应。proto文件如下:
syntax = "proto3";
package pb;
option go_package="./";
message Person {
string name = 1;
int32 age = 2;
repeated string emails = 3;
repeated string phones = 4;
}
message PhoneNumber {
string number = 1;
PhoneType type = 2;
}
enum PhoneType {
MOBILE = 0;
HOME = 1;
WORK = 2;
}
上面的option go_package 一定要指定,不然会报如下错误(据说是go 1.4版本以上就需要加了)
protoc-gen-go: unable to determine Go import path for "Person.proto"
Please specify either:
? a "go_package" option in the .proto source file, or
? a "M" argument on the command line.
See https://developers.google.com/protocol-buffers/docs/reference/go-generated#package for more information.
--go_out: protoc-gen-go: Plugin failed with status code 1.
错误描述
运行protoc --go_out=. *.proto 时,又报了如下错误 主要看第一句 --go_out: protoc-gen-go: Plugin output is unparseable: Active code page: 65001 经过参考博客的大神提醒,我之前在学go语言的一个小demo(tcp通信)项目时,cmd中出现中文乱码问题,为了解决这个问题,在注册表中设置了一个autorun项,执行页面65001。(查看注册表是否有该项以及原因,具体参考顶部的参考文献) 然后前往注册表,将该autorun项删除即可。 再次感谢大佬
|