Буфер ошибка протокола на компиляции в 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)?"