[protocol-buffers] Mac에 Google 프로토콜 버퍼 설치

터미널 명령 줄을 사용하여 이전 버전의 Google 프로토콜 버퍼 (protobuf-2.4.1)를 Mac에 설치하고 싶습니다. 로 시도 brew install protobuf했지만 최신 버전 2.5.0이 설치되었습니다. 터미널에서 이전 버전을 설치할 수 있습니까?

감사



답변

Mac의 소스에서 protobuf 2.4.1을 빌드하는 데 몇 가지 문제가 있습니다. 또한 적용해야하는 패치가 있습니다. 이 모든 것은 자작 protobuf241 공식에 포함되어 있으므로 사용하는 것이 좋습니다.

프로토콜 버퍼 버전 2.4.1을 설치하려면 터미널에 다음을 입력하십시오.

brew tap homebrew/versions
brew install protobuf241

소스에서 설치하려는 프로토콜 버퍼 버전이 이미있는 경우 터미널에 다음을 입력하여 홈브류 버전에서 소스 코드를 덮어 쓸 수 있습니다.

brew link --force --overwrite protobuf241

다음을 입력하여 올바른 버전이 설치되었는지 확인하십시오.

protoc --version

2.4.1이 표시되어야합니다.


답변

이것은 양조를 통한 것이 아니지만 최종 결과는 동일합니다.

  1. https://protobuf.googlecode.com/files/protobuf-2.4.1.tar.gz 에서 protobuf-2.4.1을 다운로드합니다.
  2. tar.gz 파일을 추출하십시오.
  3. $ cd ~ / 다운로드 /protobuf-2.4.1
  4. $. / 구성
  5. $ make
  6. $ 확인 확인
  7. $ sudo make install
  8. $ which protoc
  9. $ protoc –version

4-7 단계는 protobuf tarball의 README.txt 파일에서 가져온 것입니다.


답변

새해를 맞이 protobuf하여 Homebrew 버전 과 최첨단 릴리스 간에 새로운 불일치가 있습니다. 2016 년 2 월부터 brew install protobuf버전 2.6.1이 제공됩니다.

대신 3.0 베타 릴리스를 원하는 경우 다음을 사용하여 설치할 수 있습니다.

brew install --devel protobuf


답변

Mac에 프로토콜 버퍼를 설치하는 방법을 찾고있는 경우 아래 명령을 실행하여 Homebrew를 사용하여 수행 할 수 있습니다.

brew install protobuf

사용 가능한 최신 버전의 protobuf를 설치합니다. 저에게는 글을 쓰는 시점에 v3.7.1 이 설치되었습니다.

이전 버전을 설치하려면 패키지 페이지 Protobuf Package-Homebrew 에서 사용 가능한 버전을 찾아 패키지의 특정 버전을 설치하십시오.

이 패키지에서 사용 가능한 가장 오래된 protobuf 버전은 v3.6.1.3입니다.


답변

에서 https://github.com/paulirish/homebrew-versions-1 . 나를 위해 작동합니다!

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


답변

어떤 이유로 OS X El Capitan의 프로젝트에서 protobuf 2.4.1을 사용해야합니다. 그러나 homebrew는 공식에서 protobuf241을 제거했습니다. @kksensei의 답변에 따라 수동으로 설치하고 프로세스 중에 일부 오류를 수정해야합니다.

만드는 과정에서 다음과 같은 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올바른 결과가 표시되어야합니다.


답변

나는 맥 포트를 사용했다

sudo port install protobuf-cpp