我是靠谱客的博主 自然身影,最近开发中收集的这篇文章主要介绍--go_out: protoc-gen-go: Plugin output is unparseable: Active code page: 65001,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

参考资料 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项删除即可。
再次感谢大佬

最后

以上就是自然身影为你收集整理的--go_out: protoc-gen-go: Plugin output is unparseable: Active code page: 65001的全部内容,希望文章能够帮你解决--go_out: protoc-gen-go: Plugin output is unparseable: Active code page: 65001所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部