Installing Google Protocol Buffers on mac
我想使用终端命令行在Mac上安装旧版本的Google协议缓冲区(Protobuf-2.4.1)。我试过使用
谢谢
在Mac上从源代码构建Protobuf 2.4.1有一些问题。还有一个补丁也必须应用。所有这些都包含在自制的Protobuf241配方中,所以我建议使用它。
要安装协议缓冲区版本2.4.1,请在终端中键入以下内容:
1 2 | brew tap homebrew/versions brew install protobuf241 |
如果您已经有了一个试图从源代码安装的协议缓冲区版本,则可以在终端中键入以下内容,使源代码被自制版本覆盖:
1 | brew link --force --overwrite protobuf241 |
通过键入以下内容,检查是否安装了正确的版本:
1 | protoc --version |
应显示2.4.1
这不是通过BREW,但最终结果是相同的。
步骤4-7来自Protobuf tarball的readme.txt文件。
这是一个新的一年,国产的
如果您想要3.0 beta版本,您可以安装它:
1 | brew install --devel protobuf |
来自https://github.com/paulirish/homebrew-versions-1。为我工作!
1 | brew install https://raw.githubusercontent.com/paulirish/homebrew-versions-1/master/protobuf241.rb |
出于某种原因,我需要在我的OS X El Capitan项目中使用Protobuf 2.4.1。然而,自制啤酒已经从配方中去除了protobf241。我是根据@kksensei的答案手动安装的,在安装过程中必须修复一些错误。
在制作过程中,我得到3个错误,如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | 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,在文件顶部添加
我使用了Mac
1 | sudo port install protobuf-cpp |
1 | brew install --devel protobuf |
如果它告诉您"Protobuf-2.6.1已安装":1。
fwiw.,最新版本的BREW位于Protobuf 3.0,不包含任何旧版本的公式。这有点"不方便"。
虽然OrthBuf可以在线级兼容,但它在生成的Java类的级别上绝对不兼容:不能使用PotoCo 2.4生成的.class文件和ToBuff-2.5 jar等。这就是为什么更新原始BuffF版本是Hadoop栈中的一个敏感话题:它总是需要不同的协调。耳鼻喉科的项目,并且是足够的创伤性,没有人喜欢这样做。
安装协议缓冲区(从今天的v3.7.0版开始)
根据您的操作系统下载zip文件(例如:protoc-3.7.0-osx-x86_64.zip)。这也适用于其他操作系统。
将protoc-3/bin/protoc中的可执行文件移动到路径中的某个目录。在Mac中,我建议将其放入/usr/local/bin
现在你可以走了吗?????
(可选)还有一个包含文件,您可以添加。这是readme.md的一个片段
1 2 3 4 5 6 | 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 |
您可以从Google提供的官方链接页面安装http://google.github.io/proto-lens/installing-protoc.html