Tampon protocole Erreur de compilation lors de GOOGLE_PROTOBUF_MIN_PROTOC_VERSION vérifier
Je suis en train de faire une erreur en des points qui m'ces lignes dans le fichier d'en-tête produites par 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
Mais mon protoc version correspond à celle ci-dessus:
protoc --version
libprotoc 2.6.1
Ce que je fais mal?
À l'origine de mon protoc de la version 3.0.0 puis réinstallé par la synchronisation en arrière pour 2.6.1 et d'effectuer les étapes; make distclean, ./configure , make, make install pour installer le désiré version 2.6.1. J'ai besoin de la version la plus ancienne, puisque c'est celle qui est installée sur nos serveurs.
- Êtes-vous sûr que précédemment (avec la version 3.0.0) générés protobuf-têtes ont été supprimés ou mis à jour?
- Yup, j'ai supprimé ceux 3.0.0-têtes explicitement. J'ai aussi vérifié le fichier et vérifier la validation de la version est comme écrit ci-dessus avec le 2006001 comparaison de version
Vous devez vous connecter pour publier un commentaire.
Le problème est que les installés les en-têtes sur votre système (dans /usr/include/google/protobuf ou /usr/local/include/google/protobuf) sont à partir d'une version plus récente du Protocole de Tampons que votre
protoc
. Il peut être le cas que vous avez les deux versions installées dans des endroits différents, et le mal est utilisé.Oui, parce que le code généré par votre
protoc
, et il sait que sa propre version. Le code est de se demander: "Est ma version (2006001) de moins que la version minimale qui les installés les en-têtes de la réclamation est nécessaire (GOOGLE_PROTOBUF_MIN_PROTOC_VERSION)?"google/protobuf/stubs/common.h
et de regarder pour laGOOGLE_PROTOBUF_VERSION
macro autour de 100 lignes.protoc
être utilisé? J'ai également deux versions de protoc, et souhaitez spécifier àcaffe
lequel utiliser.