wake-up-neo.com

Installieren von Google Protocol Buffers auf dem Mac

Ich möchte die ältere Version von Google Protocol Buffers (protobuf-2.4.1) mithilfe der Terminal-Befehlszeile auf dem Mac installieren. Ich habe es mit brew install protobuf probiert, aber die neueste Version 2.5.0 wurde installiert. Kann die ältere Version vom Terminal installiert werden?.

Vielen Dank

83
informatiker

Es gibt einige Probleme beim Erstellen von Protobuf 2.4.1 vom Quellcode auf einem Mac. Es gibt einen Patch, der ebenfalls angewendet werden muss. All dies ist in der homebrew-Formel von protobuf241 enthalten, daher würde ich die Verwendung empfehlen.

Um den Protokollpuffer der Version 2.4.1 zu installieren, geben Sie Folgendes in ein Terminal ein:

brew tap homebrew/versions
brew install protobuf241

Wenn Sie bereits über eine Protokollpufferversion verfügen, die Sie von der Quelle installieren wollten, können Sie Folgendes in ein Terminal eingeben, damit der Quellcode von der Homebrew-Version überschrieben wird:

brew link --force --overwrite protobuf241

Überprüfen Sie, ob Sie jetzt die richtige Version installiert haben, indem Sie Folgendes eingeben:

protoc --version

Es sollte 2.4.1 angezeigt werden

129
John Gilmore

Dies erfolgt nicht über Brühen, aber das Endergebnis ist das gleiche.

  1. Laden Sie das protobuf-2.4.1 von https://protobuf.googlecode.com/files/protobuf-2.4.1.tar.gz herunter.
  2. Extrahieren Sie die tar.gz-Datei.
  3. $ cd ~/Downloads/protobuf-2.4.1
  4. $./configure
  5. $ machen
  6. $ check machen
  7. $ Sudo make install
  8. $ welches Protokoll
  9. $ protoc --version

Die Schritte 4-7 stammen aus der Datei README.txt aus dem protobuf-Tarball.

64
kksensei

Es ist ein neues Jahr und es gibt ein neues Missverhältnis zwischen der Version von protobuf in Homebrew und der Schneide-Version. Ab Februar 2016 erhalten Sie mit brew install protobuf die Version 2.6.1.

Wenn Sie stattdessen die Betaversion 3.0 möchten, können Sie sie mit folgendem installieren:

brew install --devel protobuf
34
danvk

Von https://github.com/paulirish/homebrew-versions-1 . Funktioniert bei mir!

brew install https://raw.githubusercontent.com/paulirish/homebrew-versions-1/master/protobuf241.rb
11
Van

Aus irgendeinem Grund muss ich protobuf 2.4.1 in meinem Projekt unter OS X El Capitan verwenden. Homebrew hat jedoch protobuf241 aus seiner Formel entfernt. Ich installiere es entsprechend der Antwort von @kksensei manuell und muss während des Prozesses einige Fehler beheben. 

Während des Make-Vorgangs erhalte ich 3 Fehler wie folgt:

google/protobuf/message.cc:130:60: error: implicit instantiation of undefined template 'std::__1::basic_istream<char, std::__1::char_traits<char> >'

  return ParseFromZeroCopyStream(&zero_copy_input) && input->eof();

                                                           ^

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/iosfwd:108:28: note: template is declared here

    class _LIBCPP_TYPE_VIS basic_istream;

                           ^

google/protobuf/message.cc:135:67: error: implicit instantiation of undefined template 'std::__1::basic_istream<char, std::__1::char_traits<char> >'

  return ParsePartialFromZeroCopyStream(&zero_copy_input) && input->eof();

                                                                  ^

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/iosfwd:108:28: note: template is declared here

    class _LIBCPP_TYPE_VIS basic_istream;

                           ^

google/protobuf/message.cc:175:16: error: implicit instantiation of undefined template 'std::__1::basic_ostream<char, std::__1::char_traits<char> >'

  return output->good();

               ^

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/iosfwd:110:28: note: template is declared here

    class _LIBCPP_TYPE_VIS basic_ostream;

                           ^

(Sorry, ich weiß nicht, wie man Code anfügt, wenn der Code '`' enthält)

Wenn Sie den gleichen Fehler erhalten, bearbeiten Sie bitte src/google/protobuf/message.cc, fügen Sie #include <istream> am Anfang der Datei hinzu und führen Sie $ make erneut aus. Es sollte keine Fehler mehr angezeigt werden. Danach $ Sudo make install. Nach Abschluss der Installation sollte $protoc --version das korrekte Ergebnis anzeigen.

10
Xiaoqi Chu

Ich habe Macports benutzt

Sudo port install protobuf-cpp
7
brew install --devel protobuf

Wenn Sie "protobuf-2.6.1 bereits installiert" sagen: 1. brew uninstall --devel protobuf 2. brew link libtool 3. brew install --devel protobuf

FWIW., Die neueste Version von brew ist bei protobuf 3.0 enthalten und enthält keine Formeln für die älteren Versionen. Dies ist etwas "unbequem".

Protobuf ist zwar auf der Verbindungsebene kompatibel, aber auf der Ebene der generierten Java-Klassen absolut nicht: Sie können mit Protoc 2.4 erstellte .class-Dateien nicht mit der Protobuf-2.5-JAR usw. verwenden Protobuf-Versionen sind ein so heikles Thema im Hadoop-Stack: Es erfordert ausnahmslos eine Koordination zwischen verschiedenen Projekten und ist so traumatisch, dass es niemandem gefällt.

2
Steve Loughran

Dieser Prozess wurde auf nur vereinfacht

brew install protobuf

Es installiert die neueste verfügbare Version von protobuf. Zum Zeitpunkt des Schreibens installierte dies für mich die v3.7.1

So installieren Sie den Protokollpuffer (ab der heutigen Version 3.7.0)

  1. Gehen Sie zu dieser Website
  2. laden Sie die Zip-Datei entsprechend Ihrem Betriebssystem herunter (z. B. protoc-3.7.0-osx-x86_64.Zip). Dies gilt auch für andere Betriebssysteme.

  3. Verschieben Sie die ausführbare Datei in protoc-3/bin/protoc in eines Ihrer Verzeichnisse in PATH. Unter Mac schlage ich vor, es in/usr/local/bin abzulegen

Jetzt kannst du loslegen ????????

(optional) Es gibt auch eine Include-Datei, die Sie hinzufügen können. Dies ist ein Auszug aus der README.md

If you intend to use the included well known types then don't forget to
copy the contents of the 'include' directory somewhere as well, for example
into '/usr/local/include/'.

Please refer to our official github site for more installation instructions:
https://github.com/protocolbuffers/protobuf
0
Imran

sie können die Installation von der offiziellen Link-Seite von Google http://google.github.io/proto-lens/installing-protoc.html durchführen.

0
Jabongg

Es gibt einen anderen offiziellen Weg von Google, wie von einem anderen Nutzer erwähnt.

Lesen Sie es vollständig durch, bevor Sie es versuchen.

Hier sind die Schritte:

Öffnen Sie das Terminal und geben Sie Folgendes ein

  1. PROTOC_Zip=protoc-3.7.1-osx-x86_64.Zip
  2. curl -OL https://github.com/google/protobuf/releases/download/v3.7.1/$PROTOC_Zip
  3. Sudo unzip -o $PROTOC_Zip -d /usr/local bin/protoc
  4. rm -f $PROTOC_Zip

Hat für mich gearbeitet.

P.S.
Dies ist nur für Version 3.7.1 in osx. Wenn Sie eine andere Version/Plattform installieren möchten, rufen Sie den Link releases auf, überprüfen Sie die Details der neuesten Version und verwenden Sie diese Informationen. Referenz

0