Protocol buffers 在mac上安装Google协议缓冲区

Protocol buffers 在mac上安装Google协议缓冲区,protocol-buffers,homebrew,Protocol Buffers,Homebrew,我想使用终端命令行在mac上安装旧版本的Google协议缓冲区(protobuf-2.4.1)。我尝试使用brew安装protobuf,但已安装最新版本2.5.0。是否可以从终端安装旧版本 谢谢这不是通过brew实现的,但最终结果是一样的 从下载protobuf-2.4.1 解压缩tar.gz文件 $cd~/下载/protobuf-2.4.1 美元/配置 $make 美元支票 $sudo make安装 $哪个协议 $protoc--版本 步骤4-7来自protobuf tarball的READM

我想使用终端命令行在mac上安装旧版本的Google协议缓冲区(protobuf-2.4.1)。我尝试使用
brew安装protobuf
,但已安装最新版本2.5.0。是否可以从终端安装旧版本


谢谢

这不是通过brew实现的,但最终结果是一样的

  • 从下载protobuf-2.4.1
  • 解压缩tar.gz文件
  • $cd~/下载/protobuf-2.4.1
  • 美元/配置
  • $make
  • 美元支票
  • $sudo make安装
  • $哪个协议
  • $protoc--版本

  • 步骤4-7来自protobuf tarball的README.txt文件。

    在Mac上从源代码构建protobuf 2.4.1时存在一些问题。还有一个补丁也必须应用。所有这些都包含在自制protobuf241公式中,因此我建议使用它

    要安装协议缓冲区版本2.4.1,请在终端中键入以下内容:

    brew tap homebrew/versions
    brew install protobuf241
    
    如果您已经有了试图从源代码安装的协议缓冲区版本,则可以在终端中键入以下内容,以使源代码被自制版本覆盖:

    brew link --force --overwrite protobuf241
    
    通过键入以下内容,检查您现在是否安装了正确的版本:

    protoc --version
    
    它应该显示我使用的macports 2.4.1

    sudo port install protobuf-cpp
    

    今年是新的一年,在自制的
    protobuf
    版本和最新版本之间出现了新的不匹配。自2016年2月起,
    brew安装protobuf
    将为您提供2.6.1版

    如果您想要3.0 beta版,则可以使用以下软件安装:

    brew install --devel protobuf
    

    出于某种原因,我需要在OSX El Capitan上的项目中使用protobuf 2.4.1。然而,自制已将protobuf241从其配方中删除。我是根据@kksensei的答案手动安装的,在安装过程中我必须修正一些错误

    在制作过程中,我得到了如下3个错误:

    google/protobuf/message.cc:130:60:错误:未定义模板“std::\uu 1::basic\u istream”的隐式实例化
    返回ParseFromZeroCopyStream(&zero_copy_input)&&input->eof();
    ^
    /Applications/Xcode.app/Contents/Developer/toolschains/XcodeDefault.xctoolschain/usr/bin/。/lib/c++/v1/iosfwd:108:28:注意:此处声明了模板
    类(LIBCPP)类型(VIS basic)流;;
    ^
    google/protobuf/message.cc:135:67:错误:未定义模板“std::u 1::basic_istream”的隐式实例化
    返回ParsePartialFromZeroCopyStream(&zero_copy_input)&&input->eof();
    ^
    /Applications/Xcode.app/Contents/Developer/toolschains/XcodeDefault.xctoolschain/usr/bin/。/lib/c++/v1/iosfwd:108:28:注意:此处声明了模板
    类(LIBCPP)类型(VIS basic)流;;
    ^
    google/protobuf/message.cc:175:16:错误:未定义模板“std::u 1::basic_ostream”的隐式实例化
    返回输出->良好();
    ^
    /Applications/Xcode.app/Contents/Developer/toolschains/XcodeDefault.xctoolschain/usr/bin/./lib/c++/v1/iosfwd:110:28:注意:模板在这里声明
    类(LIBCPP)(TYPE)与基本类(ostream);;
    ^
    如果它告诉您“protobuf-2.6.1已安装”: 1. <代码>brew卸载--devel protobuf 2. <代码>brew链接库工具
    3.
    brew安装——开发protobuf

    FWIW.,brew的最新版本是protobuf 3.0,不包含任何旧版本的公式。这有点“不方便”

    虽然protobuf可能在wire级别上兼容,但在生成的java类级别上绝对不兼容:您不能将protoc 2.4生成的.class文件与protobuf-2.5 JAR一起使用,这就是为什么更新protobuf版本在Hadoop堆栈中是一个如此敏感的话题:它总是需要在不同的项目之间进行协调,而且会造成很大的创伤,以至于没有人愿意这样做。

    。为我工作

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

    您可以从google提供的官方链接页面安装,以安装协议缓冲区(从今天的v3.7.0版开始)
  • 去这个
  • 根据您的操作系统下载zip文件(例如:protoc-3.7.0-osx-x86_64.zip)。这也适用于其他操作系统

  • 将protoc-3/bin/protoc中的可执行文件移动到PATH中的一个目录中。在Mac中,我建议将其放入/usr/local/bin


  • 现在,正如另一位用户所提到的,谷歌提供了另一种官方方式

    在尝试之前,请仔细阅读

    以下是步骤:

    打开端子并键入以下内容

  • PROTOC_ZIP=PROTOC-3.7.1-osx-x86_64.ZIP
  • curl-OLhttps://github.com/google/protobuf/releases/download/v3.7.1/$PROTOC_邮政编码
  • sudo解压-o$PROTOC_ZIP-d/usr/local bin/PROTOC
  • rm-f$PROTOC\u邮政编码
  • 为我工作

    附加说明
    这仅适用于osx中的3.7.1版。 如果要安装其他版本/平台,请访问并查看最新版本的详细信息,然后使用这些信息。

    如果您来到这里是想了解如何在Mac上安装协议缓冲区,可以通过运行下面的命令使用自制软件来完成

    brew install protobuf
    
    它安装了可用的protobuf的最新版本。在撰写本文时,我安装了v3.7.1

    如果要安装旧版本,请从软件包页面查找可用版本,并安装该软件包的特定版本

    此软件包中最早可用的protobuf版本是适用于v3用户的v3.6.1.3


    自制版本已被删除,配方已清空。因此,我的建议是按照以下步骤手动安装

    目前,您需要手动构建和安装协议缓冲区工具集

  • 下载
    brew install protobuf
    
    PROTOC_ZIP=protoc-3.7.1-osx-x86_64.zip
    curl -OL https://github.com/protocolbuffers/protobuf/releases/download/v3.7.1/$PROTOC_ZIP
    sudo unzip -o $PROTOC_ZIP -d /usr/local bin/protoc
    sudo unzip -o $PROTOC_ZIP -d /usr/local 'include/*'
    rm -f $PROTOC_ZIP