Protocol Buffer-Fehler auf kompilieren während GOOGLE_PROTOBUF_MIN_PROTOC_VERSION überprüfen
Ich bin derzeit immer eine Fehlermeldung, welche Punkte mich zu diesen Zeilen in der header-Datei erzeugt, die von 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
Aber meine protoc version entspricht der oben beschriebenen:
protoc --version
libprotoc 2.6.1
Was mache ich falsch?
Ursprünglich meine protoc version war 3.0.0 dann neu installiert es durch synchronisieren wieder auf 2.6.1 und tun die Schritte; make distclean, ./configure , make, make install installieren Sie die gewünschte version 2.6.1. Ich brauchte die ältere version, da installiert wird in unseren Servern.
Sind Sie sicher, dass Ihr vorher (mit version 3.0.0) generiert protobuf-Header wurden entfernt/aktualisiert?
Yup, habe ich diese gelöscht 3.0.0-Header explizit. Ich habe auch überprüft die Datei und überprüfen Sie die Validierung für die version ist wie oben geschrieben mit der 2006001 version Vergleich
Yup, habe ich diese gelöscht 3.0.0-Header explizit. Ich habe auch überprüft die Datei und überprüfen Sie die Validierung für die version ist wie oben geschrieben mit der 2006001 version Vergleich
InformationsquelleAutor the_qbf | 2016-03-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist, dass die installierten Headern auf deinem system (in /usr/include/google/protobuf oder /usr/local/include/google/protobuf) sind von einer neueren version von Protocol Buffers als Ihre
protoc
. Es kann der Fall eintreten, dass Sie beide Versionen installiert haben, in verschiedenen Orten, und falsch verwendet wird.Ja, weil, der code wurde generiert von Ihrem
protoc
, und es kennt seine eigene version. Der code ist zu Fragen: "Ist meine version (2006001) kleiner als die minimale version, die die installierte Header Forderung, erforderlich ist (GOOGLE_PROTOBUF_MIN_PROTOC_VERSION)?"Ja, schau
google/protobuf/stubs/common.h
und suchen für dieGOOGLE_PROTOBUF_VERSION
makro um die 100 Zeilen.Kompetente und hilfreiche Antwort, hat mir geholfen, herauszufinden, was war mein problem. Danke, sir!
Hi, jeder Weg zu geben, um ein Programm, welche version von
protoc
verwendet werden? Ich habe auch zwei Versionen von protoc, und würde angeben wollen, umcaffe
die man zu verwenden.danke! Ich habe einen Weg herausgefunden, durch Angabe der protobuf ich soll zuerst in die variable PATH aus, ohne zu entfernen die andere version von protobuf (anderem davon abhing, dass die alte version).
InformationsquelleAutor Kenton Varda