Я создаю программное обеспечение для встроенной системы, в которой есть только кросс-компилятор для -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.