gpt4 book ai didi

java - protoc 产生无效的 java 代码

转载 作者:搜寻专家 更新时间:2023-10-31 20:08:40 27 4
gpt4 key购买 nike

我一直在使用 protobuf 生成内部后端消息,但是当我换到一台新笔记本电脑并再次设置 protoc 时,它似乎不再生成有效的 Java 代码。

我在最新的 Ubuntu 16.04 上并且已经下载了最新的协议(protocol)

$ protoc --version
libprotoc 3.5.1

构建它,没有错误或警告,用

protoc --java_out=<javapath> --python_out=<pythonpath> messages.proto

Eclipse/maven 显示的消息是这些:

The method parseUnknownFieldProto3(CodedInputStream, UnknownFieldSet.Builder, ExtensionRegistryLite, int) is undefined for the type MessageA.Request    Messages.java   ...path, line etc...

snip, more of the same for other messages

Messages.Shutdown Messages.java ...path...
The method setUnknownFieldsProto3(UnknownFieldSet) is undefined for the type GeneratedMessageV3.Builder<Messages.Request.Builder> Messages.java ...path, line etc...

snip, more of the same

如果我手动将 parseUnknownFieldProtoc3 重命名为 parseUnknownField 并且对于 SetUnknownFields 也是如此,错误就会消失,但这感觉像是错误的解决方案。

我错过了什么?

最佳答案

听起来您使用的是不匹配的生成代码和库代码。如果您使用的是 protoc 3.5.1,则需要 3.5.1 的库代码;或者,如果您使用的是库 3.3.0 - 您需要来自 3.3.0 的 protoc

所有版本都是here , 与 3.5.13.3.0

关于java - protoc 产生无效的 java 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48458101/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com