Protocol buffers 在mac上安装Google协议缓冲区
我想使用终端命令行在mac上安装旧版本的Google协议缓冲区(protobuf-2.4.1)。我尝试使用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
brew安装protobuf
,但已安装最新版本2.5.0。是否可以从终端安装旧版本
谢谢这不是通过brew实现的,但最终结果是一样的
步骤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版开始)
现在,正如另一位用户所提到的,谷歌提供了另一种官方方式 在尝试之前,请仔细阅读 以下是步骤: 打开端子并键入以下内容
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