Какая версия протобуфа Google собирается с -std = c ++ 98 или -std = c ++ 03? - PullRequest
0 голосов
/ 05 июля 2019

Я создаю программное обеспечение для встроенной системы, в которой есть только кросс-компилятор для -std = c ++ 98. Мы хотим отправить данные, закодированные через protobuf 2, на сервер. К сожалению, protobuf теперь требует C ++ 11.

В https://github.com/protocolbuffers/protobuf/issues/2780 предлагается, что «Мы можем создать ветку, которая работает для C ++ 98. В ветке будут приниматься только исправления ошибок, но не новые функции, оптимизация и т. Д.»

https://github.com/protocolbuffers/protobuf/issues/3492 «Код должен скомпилироваться с --std = c ++ 03, прежде чем мы перейдем только на c ++ 11», закрыто, но я не могу найти соответствующий коммит.

Я пытался собрать несколько версий с -std = c ++ 98 и -std = c ++ 03, но всегда получал сообщение «ошибка: использование необъявленного идентификатора va_copy», характерного для c ++ 11 и позже.

Кто-нибудь может посоветовать, какая версия (если есть) собирается с -std = c ++ 98 или -std = c ++ 03?

Если это невозможно, я могу прибегнуть к https://github.com/nanopb/nanopb, который является реализацией ANSI C.

1 Ответ

1 голос
/ 05 июля 2019

Попробуйте использовать v 3.5.0 . Релиз после 3.5.0 имеет строгое требование C ++ 11, 3.5.0 не должно иметь этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...