В настоящее время я получаю сообщение об ошибке, которое указывает на эти строки в заголовочном файле, созданном 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 --version
libprotoc 2.6.1
Что я делаю неправильно?
Первоначально моя версия protoc была 3.0.0, затем переустановил ее, синхронизировавшись с 2.6.1 и выполнив шаги; make distclean, ./configure, make, make install для установки желаемой версии 2.6.1. Мне нужна была более старая версия, так как она установлена на наших серверах.
Проблема в том, что установленные в вашей системе заголовки (в / usr / include / google / protobuf или / usr / local / include / google / protobuf) относятся к более новой версии буферов протокола, чем ваша protoc
, Возможно, обе версии установлены в разных местах и используется неправильная версия.
Но моя версия протокола соответствует приведенной выше:
Да, потому что этот код был сгенерирован вашим protoc
и он знает свою собственную версию. Код спрашивает: «Моя версия (2006001) меньше минимальной версии, требуемой для установленных заголовков (GOOGLE_PROTOBUF_MIN_PROTOC_VERSION)?»
Других решений пока нет …