当前位置: 首页 > 知识库问答 >
问题:

协议v2.6.1是否应该产生“预期的”“必需的”、“可选的”或“重复的”。

胡璞瑜
2023-03-14

使用Ubuntu 16.04和CMake,我正在尝试创建一个共享的库,从原型文件。CMakesprotobuf_generate_cpp正在生产PROTO_SRCS和PROTO_HDRS。

我没有任何google/protobuf/*。所以我下载了3.6.1并将其移动到/usr/local/include中。我知道我正在使用proto2,protoc是第2版,其中一些*。3.6.1中的proto文件是proto3,但下面的文件(我使用的是syntax=“proto2”),所以我认为这应该是可以的。

然而,我遇到了以下错误。

 $ protoc --version
libprotoc 2.6.1

[  2%] Running C++ protocol buffer compiler on models.proto
google/protobuf/descriptor.proto:439:3: Expected "required", "optional", or "repeated".
google/protobuf/descriptor.proto:439:12: Expected field name.
google/protobuf/descriptor.proto:497:3: Expected "required", "optional", or "repeated".
google/protobuf/descriptor.proto:497:12: Expected field name.
google/protobuf/descriptor.proto:498:3: Expected "required", "optional", or "repeated".
google/protobuf/descriptor.proto:498:12: Expected field name.
google/protobuf/descriptor.proto:597:3: Expected "required", "optional", or "repeated".
google/protobuf/descriptor.proto:597:12: Expected field name.
google/protobuf/descriptor.proto:620:3: Expected "required", "optional", or "repeated".
google/protobuf/descriptor.proto:620:12: Expected field name.
edk/edk_extensions.proto: Import "google/protobuf/descriptor.proto" was not found or had errors.
edk/edk_extensions.proto:15:8: ".google.protobuf.FieldOptions" is not defined.
edk/edk_extensions.proto:20:8: ".google.protobuf.MessageOptions" is not defined.
models.proto: Import "edk/edk_extensions.proto" was not found or had errors.

有人有想法吗?

共有1个答案

濮俊美
2023-03-14

最新版本的descriptor.proto声明保留字段-例如第439行。这是一种新语法,它被向后移植到协议2语法,但是旧版本的协议无法理解它(不稳定)。要么更新协议,要么使用您正在使用的协议附带的descriptor.proto。

 类似资料:
  • 我正在尝试执行X和(y或z)的查询,我需要得到代理是列表代理还是销售代理的所有已售出的属性。 只有bool才能得到9324个结果。当我添加bool should时,我得到了相同的结果集9324。ID为140699的代理应该只有大约100个结果。我也尝试过一个布尔过滤器,但没有成功。当用过滤器替换should时,结果就像另一个bool must一样,我只得到代理是列表代理和销售代理的结果

  • 当我尝试运行gradle项目时,我收到以下错误消息: 项目配置的yml文件如下所示: 我尝试用gradlew bootRun运行项目,但不可能启动项目。也许这是一些依赖项版本的问题,但我不是很确定。 编辑:

  • 但是当我创建新的JavaFX FXML应用程序时,这个应用程序和上面的几乎一样,但是阶段是由FXML和css定义的,而不是字节代码。这一个可以作为windows应用程序完美地工作,但不能作为浏览器应用程序工作 下面是工作应用程序的代码: 并且此应用程序在浏览器中无法工作并引发异常: 有人能帮帮我吗?

  • 问题内容: 如何设置协议的可选属性?例如,UITextInputTraits具有许多可选的读/写属性。当我尝试以下操作时,出现编译错误(无法在“ textInputTraits”中分配给“ keyboardType”): 通常,在访问协议的可选属性时,您会添加问号,但这在分配值时不起作用(错误:无法分配给该表达式的结果): 该协议如下所示: 问题答案: 在Swift中是不可能的(还好吗?)。从AD

  • WebSocket是一个允许Web应用程序(通常指浏览器)与服务器进行双向通信的协议。HTML5的WebSocket API主要是为浏览器端提供了一个基于TCP协议实现全双工通信的方法。 WebSocket优势: 浏览器和服务器只需要要做一个握手的动作,在建立连接之后,双方可以在任意时刻,相互推送信息。同时,服务器与客户端之间交换的头信息很小。

  • 我正在尝试按照本指南创建一个为我提供数据源对象的Bean,但是当我尝试访问数据源时,例如这样: 我得到这个错误: 我多次编辑我的代码,因为我读过各种各样的例子,它们总是略有不同。 这是src/main/resources文件夹中的application.properties文件: 这是我的依赖关系: 有人知道我错在哪里吗??谢谢你