Невозможно скомпилировать определение ProtoBuf с синтаксисом изданияC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Невозможно скомпилировать определение ProtoBuf с синтаксисом издания

Сообщение Anonymous »

Я пытаюсь собрать следующий .proto файл:

Код: Выделить всё

edition = "2023";

package example_proto;

import "google/protobuf/cpp_features.proto";

message BidAsk {
required double bid = 1;
required double ask = 2;
required string timestamp = 3 [features.(pb.cpp).string_type = VIEW];
}
Насколько мне известно, это соответствует требованиям, указанным на этой странице документации. Чтобы иметь сообщение Bidask без всех заполненных полей, и это сообщение никогда не будет изменяться или расширяться.

Код: Выделить всё

$ protoc bid_ask.proto --cpp_out=test
[libprotobuf WARNING google/protobuf/compiler/parser.cc:646] No syntax specified for the proto file: bid_ask.proto. Please use 'syntax = "proto2";' or 'syntax = "proto3";' to specify a syntax version. (Defaulted to proto2 syntax.)
bid_ask.proto:1:1: Expected top-level statement (e.g. "message").
Обновление: Я думаю, что это вызвано устаревшим компилятором Protobuf.

Код: Выделить всё

$ protoc --version
libprotoc 3.21.12
Я думаю, что это слишком старое, чтобы поддержать синтаксис издания.
Это немного удивительно, так как я установил Protoc через APT установить Protobuf-compiler . Хост ОС Ubuntu 24.10, что является недавним. Я не уверен, почему версия Protoc , поставленная через диспетчер пакетов, настолько старая.>

Подробнее здесь: https://stackoverflow.com/questions/795 ... ion-syntax
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»