Установка буферов протокола Google на Mac

Я хотел бы установить более старую версию буферов протокола Google (protobuf-2.4.1) на Mac с помощью командной строки терминала. Я попытался с brew install protobuf, но была установлена ​​последняя версия 2.5.0. Возможно установить более старую версию из терминала.

Спасибо

84
14 февр. '14 в 12:13
источник поделиться
12 ответов

Есть некоторые проблемы с построением protobuf 2.4.1 от источника на Mac. Существует также патч, который также должен применяться. Все это содержится в формуле homeobrew protobuf241, поэтому я бы посоветовал использовать ее.

Чтобы установить буфер протокола версии 2.4.1, введите в терминал следующее:

brew tap homebrew/versions
brew install protobuf241

Если у вас уже есть версия буфера протокола, которую вы пытались установить из источника, вы можете ввести следующее в терминал, чтобы исходный код был перезаписан версией homebrew:

brew link --force --overwrite protobuf241

Убедитесь, что у вас установлена ​​правильная версия, набрав:

protoc --version

Он должен отображать 2.4.1

130
20 мая '14 в 15:58
источник

Это не через brew, но конечный результат тот же.

Этапы 4-7 взяты из файла README.txt из файла tarobob.

65
22 апр. '14 в 19:18
источник

Это новый год и новое несоответствие между версией protobuf в Homebrew и выпуском самой последней версии. По состоянию на февраль 2016 года brew install protobuf предоставит вам версию 2.6.1.

Если вы хотите использовать бета-версию 3.0, вы можете установить его с помощью:

brew install --devel protobuf
34
16 февр. '16 в 23:20
источник

От https://github.com/paulirish/homebrew-versions-1. Работает для меня!

brew install https://raw.githubusercontent.com/paulirish/homebrew-versions-1/master/protobuf241.rb
12
27 февр. '17 в 6:15
источник

По какой-то причине мне нужно использовать protobuf 2.4.1 в моем проекте на OS X El Capitan. Однако доморощенный удалил protobuf241 по его формуле. Я устанавливаю его в соответствии с ответом @kksensei вручную и должен исправить некоторую ошибку во время процесса.

В процессе make я получаю 3 ошибки, например:

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;

                           ^

(Извините, я не знаю, как прикрепить код, когда код содержит ``)

Если вы получите ту же ошибку, отредактируйте src/google/protobuf/message.cc, добавьте #include <istream> в начало файла и снова $ make и не получите ошибок. После этого сделайте $ sudo make install. При завершении установки $protoc --version должен отображаться правильный результат.

10
15 июня '16 в 15:45
источник

Я использовал macports

sudo port install protobuf-cpp
7
12 июня '14 в 2:09
источник
brew install --devel protobuf

Если он сообщает вам, что "protobuf-2.6.1 уже установлен":  1. brew uninstall --devel protobuf  2. brew link libtool  3. brew install --devel protobuf

6
11 авг. '16 в 22:08
источник

FWIW., последняя версия brew находится в protobuf 3.0 и не содержит никаких формул для более старых версий. Это несколько неудобно.

Хотя protobuf может быть совместим на уровне проводов, он абсолютно несовместим на уровне сгенерированных классов Java: вы не можете использовать .class файлы, созданные с protoc 2.4 с protobuf-2.5 JAR и т.д. и т.д. Это почему обновление версий protobuf является такой чувствительной темой в стеке Hadoop: она неизменно требует координации в разных проектах и ​​достаточно травматична, что никто не любит это делать.

2
13 февр. '17 в 21:25
источник

вы можете установить с официальной страницы ссылки, предоставленной Google http://google.github.io/proto-lens/install-protoc.html

1
03 янв. '19 в 10:04
источник

Чтобы установить Protocol Buffer (с сегодняшней версии v3.7.0)

  1. Перейти на этот сайт
  2. загрузите zip файл в соответствии с вашей ОС (например, protoc-3.7.0-osx-x86_64.zip). Это относится и к другим ОС.

  3. Переместите исполняемый файл из protoc-3/bin/protoc в один из ваших каталогов в PATH. В Mac я предлагаю поместить его в /usr/local/bin

Теперь тебе пора 💪🏾

(необязательно) Существует также включаемый файл, который вы можете добавить. Это фрагмент 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
25 марта '19 в 18:11
источник

Существует другой официальный путь от Google, как упомянул другой пользователь.

Прочитайте его полностью, прежде чем пытаться.

Вот шаги:

Откройте Терминал и введите следующее

  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

Работал на меня.

PS
Это только для версии 3.7.1 в OSX. Если вы хотите установить какую-либо другую версию/платформу, перейдите по ссылке выпусков, ознакомьтесь с информацией о последней версии и используйте эту информацию. Ссылка

0
06 мая '19 в 13:27
источник

Этот процесс был упрощен до

brew install protobuf

Он устанавливает последнюю доступную версию protobuf. Для меня, на момент написания, это установило v3.7.1

0
06 мая '19 в 17:40
источник

Посмотрите другие вопросы по меткам или Задайте вопрос