Буфер ошибка протокола на компиляции в PROTOBUF гугле мин PROTOC версию проверить
в настоящее время я получаю ошибку, которая указывает мне на эти строки в заголовочном файле, созданном protoc:
#if 2006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc.
#endif
но мой protoc версия соответствует один выше:
protoc --version
libprotoc 2.6.1
что я делаю не так?
первоначально моя версия протокола была 3.0.0, затем переустановила ее, синхронизировав обратно в 2.6.1 и выполнив шаги; сделайте distclean, ./ configure, make, make install для установки желаемой версии 2.6.1. Мне нужна была более старая версия, так как это та самая установлен на наших серверах.
1 ответов
проблема в том, что установленные заголовки в вашей системе (в /usr/include/google/protobuf или /usr/local/include/google/protobuf) относятся к более новой версии буферов протокола, чем ваш protoc
. Возможно, у вас обе версии установлены в разных местах, и используется неправильная.
но мой protoc версия соответствует один выше:
Да, потому что код был сгенерирован код protoc
, и он знает свой собственный версия. Код спрашивает: "моя версия (2006001) меньше минимальной версии, которая требуется для установленных заголовков (GOOGLE_PROTOBUF_MIN_PROTOC_VERSION)?"